o
    e                     @   sB   d Z ddlZddlZddlmZ ddlZdd ZG dd dZdS )z Tablib - JSON Support
    N)UUIDc                 C   s.   t | tjtfrt| S t| dr|  S | S )N	isoformat)
isinstancedecimalDecimalr   strhasattrr   )obj r
   G/var/www/html/venv/lib/python3.10/site-packages/tablib/formats/_json.pyserialize_objects_handler
   s
   
r   c                   @   sP   e Zd ZdZdZedd Zedd Zedd Zed	d
 Z	edd Z
dS )
JSONFormatjson)r   jsnc                 C   s   t j|jtddS )z'Returns JSON representation of Dataset.Fdefaultensure_ascii)r   dumpsdictr   )clsdatasetr
   r
   r   
export_set   s   zJSONFormat.export_setc                 C   s   t j| tddS )z(Returns JSON representation of Databook.Fr   )r   r   _packager   )r   databookr
   r
   r   export_book   s   
zJSONFormat.export_bookc                 C   s   |   t||_dS )z!Returns dataset from JSON stream.N)wiper   loadr   )r   dset	in_streamr
   r
   r   
import_set%   s   zJSONFormat.import_setc                 C   sB   |   t|D ]}t }|d |_|d |_|| q	dS )z"Returns databook from JSON stream.titledataN)r   r   r   tablibDatasetr    r   	add_sheet)r   dbookr   sheetr!   r
   r
   r   import_book,   s   

zJSONFormat.import_bookc              	   C   s*   zt | W dS  ttfy   Y dS w )z+Returns True if given stream is valid JSON.TF)r   r   	TypeError
ValueError)r   streamr
   r
   r   detect7   s   
zJSONFormat.detectN)__name__
__module____qualname__r    
extensionsclassmethodr   r   r   r'   r+   r
   r
   r
   r   r      s    




r   )__doc__r   r   uuidr   r"   r   r   r
   r
   r
   r   <module>   s    	