U
    yagæ	  ã                   @   sf   d Z ddlZddlmZ ddlmZmZmZmZ ej	ddd�Z
e
 ejdddd�¡ G d	d
„ d
ƒZdS )z Tablib - ODF Support.
é    N)ÚBytesIO)ÚopendocumentÚstyleÚtableÚtextÚboldZ	paragraph)ÚnameÚfamily)Z
fontweightZfontweightasianZfontweightcomplexc                   @   sD   e Zd ZdZdZedd„ ƒZedd„ ƒZedd„ ƒZed	d
„ ƒZ	dS )Ú	ODSFormatÚods)r   c                 C   s\   t  ¡ }|j t¡ tj|jr$|jndd�}|j |¡ |  	||¡ t
ƒ }| |¡ | ¡ S )z&Returns ODF representation of Dataset.zTablib Dataset©r   )r   ÚOpenDocumentSpreadsheetÚautomaticstylesÚ
addElementr   r   ÚTableÚtitleÚspreadsheetÚ
dset_sheetr   ÚsaveÚgetvalue)ÚclsÚdatasetÚwbÚwsÚstream© r   úG/var/www/html/myvenv/lib/python3.8/site-packages/tablib/formats/_ods.pyÚ
export_set   s    
zODSFormat.export_setc                 C   st   t  ¡ }|j t¡ t|jƒD ]<\}}tj|j	r6|j	nd| d�}|j
 |¡ |  ||¡ qtƒ }| |¡ | ¡ S )z'Returns ODF representation of DataBook.zSheet%sr   )r   r   r   r   r   Ú	enumerateZ	_datasetsr   r   r   r   r   r   r   r   )r   Zdatabookr   ÚiZdsetr   r   r   r   r   Úexport_book$   s    
zODSFormat.export_bookc                 C   sä   |j dd�}t|jƒD ]&\}}|}| |d | |d f¡ qt|dd�D ]”\}}|dko^|j}	|	rhtnd}
tj|
d�}| |¡ t|ƒD ]R\}}t	|t
jƒr®tjd|d	�}n$tjd
d�}| tjt|ƒ|
d�¡ | |¡ qŠqJdS )z-Completes given worksheet from given Dataset.F)Zdictsr   é   )ÚstartN)Ú	stylenameÚfloat)Ú	valuetypeÚvalueÚstring)r%   )r   r#   )Ú_packager   Z_separatorsÚinsertÚheadersr   r   ZTableRowr   Ú
isinstanceÚnumbersÚNumberZ	TableCellr   ÚPÚstr)r   r   r   r(   r   ÚsepÚ_offsetZ
row_numberÚrowZ	is_headerr   Zodf_rowÚjÚcolÚcellr   r   r   r   4   s    
zODSFormat.dset_sheetc                 C   s>   t |tƒrt|ƒ}zt |¡ W dS  tk
r8   Y dS X d S )NTF)r+   Úbytesr   r   ÚloadÚ	Exception)r   r   r   r   r   ÚdetectJ   s    

zODSFormat.detectN)
Ú__name__Ú
__module__Ú__qualname__r   Ú
extensionsÚclassmethodr   r    r   r9   r   r   r   r   r
      s   


r
   )Ú__doc__r,   Úior   Zodfr   r   r   r   ÚStyler   r   ZTextPropertiesr
   r   r   r   r   Ú<module>   s   ý