U
    yag  ã                   @   s&   d Z ddlZddlZG dd„ dƒZdS )z Tablib - YAML Support.
é    Nc                   @   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 )Ú
YAMLFormatÚyaml)r   Zymlc                 C   s   t j|jdd�ddd�S )z'Returns YAML representation of Dataset.F©ZorderedNT©Zdefault_flow_styleZallow_unicode©r   Z	safe_dumpZ_package)ÚclsZdataset© r   úH/var/www/html/myvenv/lib/python3.8/site-packages/tablib/formats/_yaml.pyÚ
export_set   s
    
  ÿzYAMLFormat.export_setc                 C   s   t j|jdd�ddd�S )z(Returns YAML representation of Databook.Fr   NTr   r   )r   Zdatabookr   r   r	   Úexport_book   s
    
  ÿzYAMLFormat.export_bookc                 C   s   |  ¡  t |¡|_dS )z!Returns dataset from YAML stream.N)Úwiper   Ú	safe_loadÚdict)r   ZdsetÚ	in_streamr   r   r	   Ú
import_set   s    zYAMLFormat.import_setc                 C   sB   |  ¡  t |¡D ]*}t ¡ }|d |_|d |_| |¡ qdS )z"Returns databook from YAML stream.ÚtitleÚdataN)r   r   r   ÚtablibZDatasetr   r   Z	add_sheet)r   Zdbookr   Zsheetr   r   r   r	   Úimport_book"   s    

zYAMLFormat.import_bookc              
   C   sX   z*t  |¡}t|tttfƒr"W dS W dS W n( t jjt jj	t j
jfk
rR   Y dS X dS )z+Returns True if given stream is valid YAML.TFN)r   r   Ú
isinstanceÚlistÚtupler   ÚparserZParserErrorÚreaderZReaderErrorÚscannerZScannerError)r   ÚstreamZ_yamlr   r   r	   Údetect.   s    

ÿzYAMLFormat.detectN)Ú__name__Ú
__module__Ú__qualname__r   Ú
extensionsÚclassmethodr
   r   r   r   r   r   r   r   r	   r   	   s   



r   )Ú__doc__r   r   r   r   r   r   r	   Ú<module>   s   