
    ?wg                     F    d Z ddlZddlZddlmZ ddlZd Z G d d      Zy)z Tablib - JSON Support
    N)UUIDc                     t        | t        j                  t        f      rt	        |       S t        | d      r| j                         S | S )N	isoformat)
isinstancedecimalDecimalr   strhasattrr   )objs    K/var/www/horilla/myenv/lib/python3.12/site-packages/tablib/formats/_json.pyserialize_objects_handlerr   
   s9    #./3x	k	"}}
    c                   d    e Zd ZdZdZed        Zed        Zed        Zed        Z	ed        Z
y)	
JSONFormatjson)r   jsnc                 N    t        j                  |j                  t        d      S )z'Returns JSON representation of Dataset.Fdefaultensure_ascii)r   dumpsdictr   )clsdatasets     r   
export_setzJSONFormat.export_set   s!     zzLL";%
 	
r   c                 V    t        j                  |j                         t        d      S )z(Returns JSON representation of Databook.Fr   )r   r   _packager   )r   databooks     r   export_bookzJSONFormat.export_book   s'     zz)BQV
 	
r   c                 X    |j                          t        j                  |      |_        y)z!Returns dataset from JSON stream.N)wiper   loadr   )r   dset	in_streams      r   
import_setzJSONFormat.import_set%   s     			IIi(	r   c                     |j                          t        j                  |      D ];  }t        j                         }|d   |_        |d   |_        |j                  |       = y)z"Returns databook from JSON stream.titledataN)r!   r   r"   tablibDatasetr'   r   	add_sheet)r   dbookr$   sheetr(   s        r   import_bookzJSONFormat.import_book,   sS     	

YYy) 	"E>>#DwDJfDIOOD!		"r   c                 Z    	 t        j                  |       y# t        t        f$ r Y yw xY w)z+Returns True if given stream is valid JSON.TF)r   r"   	TypeError
ValueError)r   streams     r   detectzJSONFormat.detect7   s-    	IIf:& 		s    **N)__name__
__module____qualname__r'   
extensionsclassmethodr   r   r%   r.   r3    r   r   r   r      sn    E J
 
 
 
 ) ) " "  r   r   )__doc__r   r   uuidr   r)   r   r   r9   r   r   <module>r<      s%       + +r   