U
    d	                     @   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   7/tmp/pip-unpacked-wheel-_3ph8cfy/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rtjd|d	}n$tjd
d}|tjt||
d || qqJd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   0   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   detectF   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   