î
lÐR\   ã               @   s§   d  Z  d d l Z d d l Z y d d l Z Wn e k
 rN d d l Z Yn Xd Z d Z d d „  Z d d „  Z	 d	 d
 „  Z
 d d „  Z d d „  Z d d „  Z d S)z Tablib - JSON Support
é    NÚjsonÚjsnc             C   s=   t  |  t j ƒ r t |  ƒ St |  d ƒ r5 |  j ƒ  S|  Sd  S)NÚ	isoformat)Ú
isinstanceÚdecimalZDecimalÚstrÚhasattrr   )Úobj© r
   úI/var/www/dbchiro/venv/lib/python3.4/site-packages/tablib/formats/_json.pyÚdate_handler   s
    

r   c             C   s   t  j |  j d t ƒS)z'Returns JSON representation of Dataset.Údefault)r   ÚdumpsÚdictr   )Zdatasetr
   r
   r   Ú
export_set   s    r   c             C   s   t  j |  j ƒ  d t ƒS)z(Returns JSON representation of Databook.r   )r   r   Z_packager   )Zdatabookr
   r
   r   Úexport_book!   s    r   c             C   s    |  j  ƒ  t j | ƒ |  _ d S)z!Returns dataset from JSON stream.N)Úwiper   Úloadsr   )ZdsetÚ	in_streamr
   r
   r   Ú
import_set&   s    
r   c             C   s[   |  j  ƒ  xJ t j | ƒ D]9 } t j ƒ  } | d | _ | d | _ |  j | ƒ q Wd S)z"Returns databook from JSON stream.ÚtitleÚdataN)r   r   r   ÚtablibZDatasetr   r   Z	add_sheet)Zdbookr   Zsheetr   r
   r
   r   Úimport_book-   s    
r   c             C   s2   y t  j |  ƒ d SWn t k
 r- d SYn Xd S)z+Returns True if given stream is valid JSON.TFN)r   r   Ú
ValueError)Ústreamr
   r
   r   Údetect8   s
    r   )zjsonr   )Ú__doc__r   r   Zujsonr   ÚImportErrorr   Ú
extensionsr   r   r   r   r   r   r
   r
   r
   r   Ú<module>   s   
