o
    e	                     @   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bold	paragraph)namefamily)
fontweightfontweightasian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   F/var/www/html/venv/lib/python3.10/site-packages/tablib/formats/_ods.py
export_set   s   
zODSFormat.export_setc                 C   st   t  }|jt t|jD ]\}}tj|j	r|j	nd| d}|j
| | || qt }|| | S )z'Returns ODF representation of DataBook.zSheet%sr   )r   r   r   r   r   	enumerate	_datasetsr   r   r   r   r   r   r   r   )r   databookr   i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 ]J\}}|dko/|j}	|	r4tnd}
tj|
d}|| t|D ])\}}t	|t
jrWtjd|d	}ntjd
d}|tjt||
d || qEq%dS )z-Completes given worksheet from given Dataset.F)dictsr      )startN)	stylenamefloat)	valuetypevaluestring)r-   )r   r+   )_packager"   _separatorsinsertheadersr   r   TableRowr   
isinstancenumbersNumber	TableCellr   Pstr)r   r   r   r0   r%   sep_offset
row_numberrow	is_headerr   odf_rowjcolcellr   r   r    r   4   s"   
zODSFormat.dset_sheetc                 C   s8   t |tr	t|}zt| W dS  ty   Y dS w )NTF)r5   bytesr   r   load	Exception)r   r   r   r   r    detectJ   s   

zODSFormat.detectN)
__name__
__module____qualname__r   
extensionsclassmethodr!   r'   r   rG   r   r   r   r    r      s    


r   )__doc__r6   ior   odfr   r   r   r   Styler   r   TextPropertiesr   r   r   r   r    <module>   s    