U
    yag  ã                   @   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   s2   t | tjtfƒrt| ƒS t| dƒr*|  ¡ S | S d S )NÚ	isoformat)Ú
isinstanceÚdecimalÚDecimalr   ÚstrÚhasattrr   )Úobj© r
   úH/var/www/html/myvenv/lib/python3.8/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   Zjsnc                 C   s   t j|jtdd�S )z'Returns JSON representation of Dataset.F©ÚdefaultÚensure_ascii)r   ÚdumpsÚdictr   )ÚclsZ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   Z_packager   )r   Z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   Z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   ÚtablibZDatasetr   r   Z	add_sheet)r   Zdbookr   Zsheetr   r
   r
   r   Úimport_book,   s    

zJSONFormat.import_bookc              	   C   s0   zt  |¡ W dS  ttfk
r*   Y dS X dS )z+Returns True if given stream is valid JSON.TFN)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   	