Ë
    u™ãjý.  ã                  ó¬   — d dl mZ d dlmZ d dlZd dlZd dlmZmZm	Z	 d dl
mZ d dlmZmZ erd dlmZ d dlmZmZmZmZ d d	lmZ  G d
„ ded   «      Zy)é    )Úannotations)ÚdefaultdictN)ÚTYPE_CHECKINGÚAnyÚoverload)ÚExcelWriter)Úcombine_kwargsÚvalidate_freeze_panes©ÚOpenDocumentSpreadsheet)ÚExcelWriterIfSheetExistsÚFilePathÚStorageOptionsÚWriteExcelBuffer)Ú	ExcelCellc                  ó  ‡ — e Zd ZdZdZ	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zedd„«       Zedd„«       Zdd„Z		 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z
dd„Zdd	„Zedd
„«       Zedd„«       Zdd„Z	 	 	 	 	 	 dd„Zˆ xZS )Ú	ODSWriterÚodf)z.odsc	                óš   •— ddl m}
 |dk(  rt        d«      ‚t        ||	«      } |
di |¤Ž| _        t
        ‰| �  |||||¬«       i | _        y )Nr   r   Úaz&Append mode is not supported with odf!)ÚmodeÚstorage_optionsÚif_sheet_existsÚengine_kwargs© )Úodf.opendocumentr   Ú
ValueErrorr	   Ú_bookÚsuperÚ__init__Ú_style_dict)ÚselfÚpathÚengineÚdate_formatÚdatetime_formatr   r   r   r   Úkwargsr   Ú	__class__s              €úe/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/io/excel/_odswriter.pyr    zODSWriter.__init__#   sa   ø€ õ 	=à�3Š;ÜÐEÓFÐFä& }°fÓ=ˆÙ,Ñ=¨}Ñ=ˆŒ
ä‰ÑØØØ+Ø+Ø'ð 	ô 	
ð ,.ˆÕó    c                ó   — | j                   S )zš
        Book instance of class odf.opendocument.OpenDocumentSpreadsheet.

        This attribute can be used to access engine-specific features.
        )r   )r"   s    r)   ÚbookzODSWriter.bookA   s   € ð �z‰zÐr*   c                óŒ   — ddl m} | j                  j                  |«      D �ci c]  }|j	                  d«      |“Œ }}|S c c}w )z(Mapping of sheet names to sheet objects.r   )ÚTableÚname)Ú	odf.tabler.   r,   ÚgetElementsByTypeÚgetAttribute)r"   r.   ÚsheetÚresults       r)   ÚsheetszODSWriter.sheetsJ   sQ   € õ 	$ð Ÿ™×4Ñ4°UÓ;ö
àð ×Ñ˜vÓ&¨Ñ-ð
ˆð 
ð ˆùò	
s   ¤Ac                óê   — | j                   j                  «       D ]'  }| j                  j                  j	                  |«       Œ) | j                  j                  | j                  j                  «       y)z(
        Save workbook to disk.
        N)r5   Úvaluesr,   ÚspreadsheetÚ
addElementÚsaveÚ_handlesÚhandle)r"   r3   s     r)   Ú_savezODSWriter._saveU   sR   € ð —[‘[×'Ñ'Ó)ò 	4ˆEØ�I‰I×!Ñ!×,Ñ,¨UÕ3ð	4à�	‰	�‰�t—}‘}×+Ñ+Õ,r*   c                óZ  — |rt        d«      ‚ddlm}m}m}	 ddlm}
m} | j                  |«      }|€J ‚|| j                  v r| j                  |   }n. ||¬«      }| j                  j                  j                  |«       t        |«      r| j                  ||«       t        |«      D ]  }|j                   |	«       «       Œ t!        |	«      }t!        t"        «      }t%        |d„ ¬«      D �]o  }||j&                     s3t        |«      D ]%  }||j&                     j                   |«       «       Œ' t        |j(                  ||j&                     z
  «      D ]<  }||j&                     j                   |«       «       ||j&                  xx   d	z  cc<   Œ> | j+                  |«      \  }}||j&                     j                  |«       ||j&                  xx   d	z  cc<   t-        |t.        «      rSd
|v rO|j1                  d
«      } ||d   ¬«      }|d	d D ])  }|j                   |
«       «       |j3                  |«       Œ+ n	 ||¬«      }|j                  |«       �Œr t5        |«      dkD  r?t        t7        |j9                  «       «      d	z   «      D ]  }|j                  ||   «       Œ yy)z1
        Write the frame cells using odf
        z%Autofilter is not supported with odf!r   )r.   Ú	TableCellÚTableRow)Ú	LineBreakÚPN©r/   c                ó2   — | j                   | j                  fS ©N)ÚrowÚcol)Úcells    r)   ú<lambda>z(ODSWriter._write_cells.<locals>.<lambda>‰   s   € °D·H±H¸d¿h¹hÐ3G€ r*   )Úkeyé   ú
)Útext)r   r0   r.   r?   r@   Úodf.textrA   rB   Ú_get_sheet_namer5   r,   r8   r9   r
   Ú_create_freeze_panesÚranger   ÚintÚsortedrF   rG   Ú_make_table_cellÚ
isinstanceÚstrÚsplitÚaddTextÚlenÚmaxÚkeys)r"   ÚcellsÚ
sheet_nameÚstartrowÚstartcolÚfreeze_panesÚautofilter_ranger.   r?   r@   rA   rB   ÚwksÚ_ÚrowsÚ	col_countrH   ÚpvalueÚtcÚlinesÚpÚlineÚrow_nrs                          r)   Ú_write_cellszODSWriter._write_cells]   sf  € ñ ÜÐDÓEÐE÷	
ñ 	
÷
	
ð
 ×)Ñ)¨*Ó5ˆ
ØÐ%Ð%Ð%à˜Ÿ™Ñ$Ø—+‘+˜jÑ)‰Cá˜ZÔ(ˆCØ�I‰I×!Ñ!×,Ñ,¨SÔ1ä  Ô.Ø×%Ñ% j°,Ô?ä�x“ò 	'ˆAØ�N‰N™8›:Õ&ð	'ô ,7°xÓ+@ˆÜ+6´sÓ+;ˆ	ä˜5Ñ&GÔHó 	ˆDà˜TŸX™XÒ&Ü˜x›ò ;�AØ˜Ÿ™‘N×-Ñ-©i«kÕ:ð;ô ˜4Ÿ8™8 i°·±Ñ&9Ñ9Ó:ò )�Ø�T—X‘X‘×)Ñ)©)«+Ô6Ø˜$Ÿ(™(Ó# qÑ(Ô#ð)ð ×.Ñ.¨tÓ4‰JˆF�BØ�—‘‰N×%Ñ% bÔ)Ø�d—h‘hÓ 1Ñ$ÓÜ˜&¤#Ô&¨4°6©>ð Ÿ™ TÓ*�Ù˜5 ™8Ô$�Ø! ! "˜Iò $�DØ—L‘L¡£Ô-Ø—I‘I˜d•Oñ$ñ ˜6”N�Ø�M‰M˜!Öð3	ô8 ˆt‹9�qŠ=Ü¤ D§I¡I£KÓ 0°1Ñ 4Ó5ò -�Ø—‘˜t F™|Õ,ñ-ð r*   c                óÎ   — i }| j                  |j                  «      }|�||d<   |j                  �4|j                  �(t	        d|j                  «      |d<   |j                  |d<   |S )a*  Convert cell attributes to OpenDocument attributes

        Parameters
        ----------
        cell : ExcelCell
            Spreadsheet cell data

        Returns
        -------
        attributes : Dict[str, Union[int, str]]
            Dictionary with attributes and attribute values
        Ú	stylenamerK   ÚnumberrowsspannedÚnumbercolumnsspanned)Ú_process_styleÚstyleÚ
mergestartÚmergeendrZ   )r"   rH   Ú
attributesÚ
style_names       r)   Ú_make_table_cell_attributesz%ODSWriter._make_table_cell_attributes©   sk   € ð ,.ˆ
Ø×(Ñ(¨¯©Ó4ˆ
ØÐ!Ø&0ˆJ�{Ñ#Ø�?‰?Ð&¨4¯=©=Ð+DÜ.1°!°T·_±_Ó.EˆJÐ*Ñ+Ø15·±ˆJÐ-Ñ.ØÐr*   c                óº  — ddl m} | j                  |«      }| j                  |j                  «      \  }}|x}}t        |t        «      r?t        |«      j                  «       }t        |«      j                  «       }| |d||¬«      fS t        |t        j                  «      r.|j                  «       }|j                  d«      }| |d||¬«      fS t        |t        j                  «      rH|j                  › d|j                  d	›d|j                   d	›�}|j                  d
«      }| |d||¬«      fS t        |t        «      r| |d||¬«      fS | |d||¬«      fS )a  Convert cell data to an OpenDocument spreadsheet cell

        Parameters
        ----------
        cell : ExcelCell
            Spreadsheet cell data

        Returns
        -------
        pvalue, cell : Tuple[str, TableCell]
            Display value, Cell value
        r   )r?   Úboolean)Ú	valuetypeÚbooleanvalueru   z%cÚdate)rz   Ú	datevalueru   ú-Ú02dz%xÚstring)rz   Ústringvalueru   Úfloat)rz   Úvalueru   )r0   r?   rw   Ú_value_with_fmtÚvalrU   ÚboolrV   ÚlowerÚupperÚdatetimeÚ	isoformatÚstrftimer|   ÚyearÚmonthÚday)r"   rH   r?   ru   r…   Úfmtrf   rƒ   s           r)   rT   zODSWriter._make_table_cell¿   sl  € õ 	(à×5Ñ5°dÓ;ˆ
Ø×'Ñ'¨¯©Ó1‰ˆˆSØÐˆ�Ü�cœ4Ô Ü˜“H—N‘NÓ$ˆEÜ˜“X—^‘^Ó%ˆFàÙØ'Ø!&Ø)ôðð ô ˜œX×.Ñ.Ô/à—M‘M“OˆEà—\‘\ $Ó'ˆFàÙ F°eÈ
ÔSðð ô ˜œXŸ]™]Ô+à—x‘x�j  #§)¡)¨C °°#·'±'¸#°Ð?ˆEà—\‘\ $Ó'ˆFàÙ F°eÈ
ÔSðð ô ˜œSÔ!àÙØ&Ø %Ø)ôðð ð ÙØ%ØØ)ôðð r*   c                 ó   — y rE   r   ©r"   rr   s     r)   rq   zODSWriter._process_style  s   € Ø<?r*   c                 ó   — y rE   r   r‘   s     r)   rq   zODSWriter._process_style  s   € Ø36r*   c                óè  — ddl m}m}m}m} |€yt        j                  |«      }|| j                  v r| j                  |   S dt        | j                  «      dz   › �}|| j                  |<    ||d¬«      }d|v r/|d   }	|	j                  d	d
«      r|j                   |d	¬«      «       d|v rA|d   }
|
j                  «       D ])  \  }}ddi}|j                   |d|› �||   i¬«      «       Œ+ d|v r[|d   }|j                  d«      }|r|j                   ||¬«      «       |j                  d«      }|r|j                   ||¬«      «       | j                  j                  j                  |«       |S )a  Convert a style dictionary to an OpenDocument style sheet

        Parameters
        ----------
        style : Dict
            Style dictionary

        Returns
        -------
        style_key : str
            Unique style key for later reference in sheet
        r   )ÚParagraphPropertiesÚStyleÚTableCellPropertiesÚTextPropertiesNÚpdrK   z
table-cell)r/   ÚfamilyÚfontÚboldF)Ú
fontweightÚbordersÚthinz0.75pt solid #000000Úborder)ru   Ú	alignmentÚ
horizontal)Ú	textalignÚvertical)Úverticalalign)Ú	odf.styler”   r•   r–   r—   ÚjsonÚdumpsr!   rY   Úgetr9   Úitemsr,   Ústyles)r"   rr   r”   r•   r–   r—   Ú	style_keyr/   Ú	odf_stylerš   r�   ÚsideÚ	thicknessÚthickness_translationr    r¡   r£   s                    r)   rq   zODSWriter._process_style  s‰  € ÷	
ó 	
ð ˆ=ØÜ—J‘J˜uÓ%ˆ	Ø˜×(Ñ(Ñ(Ø×#Ñ# IÑ.Ð.Ø”C˜×(Ñ(Ó)¨AÑ-Ð.Ð/ˆØ&*ˆ×Ñ˜Ñ#Ù˜t¨LÔ9ˆ	Ø�U‰?Ø˜‘=ˆDØ�x‰x˜ Ô&Ø×$Ñ$¡^¸vÔ%FÔGØ˜ÑØ˜IÑ&ˆGØ#*§=¡=£?ò ‘��iØ)/Ð1GÐ(HÐ%Ø×$Ñ$Ù'Ø&,¨T¨F OÐ5JÈ9Ñ5UÐ#Vôõðð ˜%ÑØ˜kÑ*ˆIØ"Ÿ™ |Ó4ˆJÙØ×$Ñ$Ñ%8À:Ô%NÔOØ —}‘} ZÓ0ˆHÙØ×$Ñ$Ñ%8ÀxÔ%PÔQØ�	‰	×Ñ×#Ñ# IÔ.Øˆr*   c           
     óà  — ddl m}m}m}m}m}  |d¬«      }| j                  j                  j                  |«        |d¬«      }	|j                  |	«        |«       }
|	j                  |
«        |d¬«      }|
j                  |«        ||¬«      }
|j                  |
«       |
j                   |ddd	¬
«      «       |
j                   |ddd	¬
«      «       |
j                   |ddt        |d   «      ¬
«      «       |
j                   |ddt        |d   «      ¬
«      «       |
j                   |ddt        |d   «      ¬
«      «       |
j                   |ddt        |d   «      ¬
«      «       y)zë
        Create freeze panes in the sheet.

        Parameters
        ----------
        sheet_name : str
            Name of the spreadsheet
        freeze_panes : tuple of (int, int)
            Freeze pane location x and y
        r   )Ú
ConfigItemÚConfigItemMapEntryÚConfigItemMapIndexedÚConfigItemMapNamedÚConfigItemSetzooo:view-settingsrC   ÚViewsÚTablesÚHorizontalSplitModeÚshortÚ2)r/   ÚtyperM   ÚVerticalSplitModeÚHorizontalSplitPositionrR   ÚVerticalSplitPositionrK   ÚPositionRightÚPositionBottomN)
Ú
odf.configr±   r²   r³   r´   rµ   r,   Úsettingsr9   rV   )r"   r]   r`   r±   r²   r³   r´   rµ   Úconfig_item_setÚconfig_item_map_indexedÚconfig_item_map_entryÚconfig_item_map_nameds               r)   rP   zODSWriter._create_freeze_panes;  sm  € ÷	
õ 	
ñ (Ð-@ÔAˆØ�	‰	×Ñ×%Ñ% oÔ6á"6¸GÔ"DÐØ×"Ñ"Ð#:Ô;á 2Ó 4ÐØ×*Ñ*Ð+@ÔAá 2¸Ô AÐØ×(Ñ(Ð)>Ô?á 2¸
Ô CÐØ×(Ñ(Ð)>Ô?à×(Ñ(ÙÐ1¸ÀcÔJô	
ð 	×(Ñ(ÙÐ/°gÀCÔHô	
ð 	×(Ñ(ÙØ.°UÄÀ\ÐRSÁ_ÓAUôô	
ð
 	×(Ñ(ÙØ,°5¼sÀ<ÐPQÁ?Ó?Sôô	
ð
 	×(Ñ(Ù˜O°%¼cÀ,ÈqÁ/Ó>RÔSô	
ð 	×(Ñ(ÙÐ,°5¼sÀ<ÐPQÁ?Ó?SÔTõ	
r*   )NNNÚwNNN)r#   z.FilePath | WriteExcelBuffer | ExcelWriter[Any]r$   ú
str | Noner%   rÈ   r&   rÈ   r   rV   r   zStorageOptions | Noner   zExcelWriterIfSheetExists | Noner   údict[str, Any] | Noner'   r   ÚreturnÚNone)rÊ   r   )rÊ   údict[str, Any])rÊ   rË   )Nr   r   NN)r\   zlist[ExcelCell]r]   rÈ   r^   rR   r_   rR   r`   ztuple[int, int] | Nonera   rÈ   rÊ   rË   )rH   r   rÊ   zdict[str, int | str])rH   r   rÊ   ztuple[object, Any])rr   rÌ   rÊ   rV   )rr   rË   rÊ   rË   )rr   rÉ   rÊ   rÈ   )r]   rV   r`   ztuple[int, int]rÊ   rË   )Ú__name__Ú
__module__Ú__qualname__Ú_engineÚ_supported_extensionsr    Úpropertyr,   r5   r=   rl   rw   rT   r   rq   rP   Ú__classcell__)r(   s   @r)   r   r      si  ø„ Ø€GØ%Ðð
 "Ø"&Ø&*ØØ15Ø;?Ø/3ð.à<ð.ð ð.ð  ð	.ð
 $ð.ð ð.ð /ð.ð 9ð.ð -ð.ð ð.ð 
õ.ð< òó ðð òó ðó-ð "&ØØØ/3Ø'+ðJ-àðJ-ð ðJ-ð ð	J-ð
 ðJ-ð -ðJ-ð %ðJ-ð 
óJ-óXó,@ðD Ú?ó Ø?àÚ6ó Ø6ó2ðh9
Øð9
Ø-<ð9
à	÷9
r*   r   r   )Ú
__future__r   Úcollectionsr   r‰   r¦   Útypingr   r   r   Úpandas.io.excel._baser   Úpandas.io.excel._utilr	   r
   r   r   Úpandas._typingr   r   r   r   Úpandas.io.formats.excelr   r   r   r*   r)   ú<module>rÛ      sP   ðÝ "å #Û Û ÷ñ õ .÷ñ
 Ý8÷ó õ 2ôU
�Ð5Ñ6õ U
r*   