
    4i,                        S SK Jr  S SKJr  S SKrS SKrS SKJrJrJ	r	J
r
Jr  S SKJr  S SKJrJr  \(       a  S SKJr  S SKJrJrJrJr  S S	KJr   " S
 S\5      rg)    )annotations)defaultdictN)TYPE_CHECKINGAnyDefaultDictcastoverload)ExcelWriter)combine_kwargsvalidate_freeze_panesOpenDocumentSpreadsheet)ExcelWriterIfSheetExistsFilePathStorageOptionsWriteExcelBuffer)	ExcelCellc                  ,  ^  \ rS rSrSrSr       S                   SU 4S jjjr\SS j5       r\SS j5       r	SS jr
     S             SS jjrSS	 jrSS
 jr\SS j5       r\SS j5       rSS jr      SS jrSrU =r$ )	ODSWriter!   odf)z.odsc	                   > SSK Jn
  US:X  a  [        S5      e[        X5      nU
" S0 UD6U l        [
        TU ]  UUUUUS9  0 U l        g )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              \/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/pandas/io/excel/_odswriter.pyr#   ODSWriter.__init__%   s_     	=3;EFF&}=,=}=
++' 	 	
 ,.    c                    U R                   $ )z
Book instance of class odf.opendocument.OpenDocumentSpreadsheet.

This attribute can be used to access engine-specific features.
)r!   )r%   s    r,   bookODSWriter.bookC   s     zzr.   c                    SSK Jn  U R                  R                  U5       Vs0 s H  nUR	                  S5      U_M     nnU$ s  snf )z(Mapping of sheet names to sheet objects.r   )Tablename)	odf.tabler3   r0   getElementsByTypegetAttribute)r%   r3   sheetresults       r,   sheetsODSWriter.sheetsL   sT     	$ 44U;
; v&-; 	 
 	
s   Ac                    U R                   R                  5        H(  nU R                  R                  R	                  U5        M*     U R                  R                  U R                  R                  5        g)z
Save workbook to disk.
N)r:   valuesr0   spreadsheet
addElementsave_handleshandle)r%   r8   s     r,   _saveODSWriter._saveW   sM     [['')EII!!,,U3 *		t}}++,r.   c                   U(       a  [        S5      eSSKJnJnJn	  SSKJn
  U R                  U5      nUc   eX R                  ;   a  U R                  U   nO+U" US9nU R                  R                  R                  U5        [        U5      (       a.  [        [        [        [        4   U5      nU R!                  X%5        [#        U5       H  nUR                  U	" 5       5        M     [%        U	5      n[%        [        5      n['        US S9 GH  nXR(                     (       d4  [#        U5       H%  nXR(                     R                  U" 5       5        M'     [#        UR*                  XR(                     -
  5       H;  nXR(                     R                  U" 5       5        XR(                  ==   S	-  ss'   M=     U R-                  U5      u  nnXR(                     R                  U5        XR(                  ==   S	-  ss'   U
" US
9nUR                  U5        GM     [/        U5      S:  aA  [#        [1        UR3                  5       5      S	-   5       H  nUR                  UU   5        M     gg)z!
Write the frame cells using odf
z%Autofilter is not supported with odf!r   )r3   	TableCellTableRow)PNr4   c                2    U R                   U R                  4$ N)rowcol)cells    r,   <lambda>(ODSWriter._write_cells.<locals>.<lambda>   s    DHHdhh3Gr.   )key   )text)r    r5   r3   rF   rG   odf.textrH   _get_sheet_namer:   r0   r>   r?   r   r   tupleint_create_freeze_panesranger   sortedrL   rM   _make_table_celllenmaxkeys)r%   cells
sheet_namestartrowstartcolfreeze_panesautofilter_ranger3   rF   rG   rH   wks_rows	col_countrN   pvaluetcprow_nrs                       r,   _write_cellsODSWriter._write_cells_   s    DEE	
 	

 	))*5
%%%$++j)CZ(CII!!,,S1 ..c3h>L%%j?xANN8:& ! (1!,S!1	5&GHDXX&xAN--ik: ) 488i&99:XX)))+6((#q(# ; ..t4JFBN%%b)hh1$vAMM! I$ t9q=DIIK 01 45tF|, 6 r.   c                    0 nU R                  UR                  5      nUb  X2S'   UR                  b5  UR                  b(  [	        SUR                  5      US'   UR                  US'   U$ )zConvert cell attributes to OpenDocument attributes

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

Returns
-------
attributes : Dict[str, Union[int, str]]
    Dictionary with attributes and attribute values
	stylenamerR   numberrowsspannednumbercolumnsspanned)_process_stylestyle
mergestartmergeendr]   )r%   rN   
attributes
style_names       r,   _make_table_cell_attributes%ODSWriter._make_table_cell_attributes   si     ,.
((4
!&0{#??&4==+D.1!T__.EJ*+15J-.r.   c                   SSK Jn  U R                  U5      nU R                  UR                  5      u  pEU=pg[        U[        5      (       a<  [        U5      R                  5       n[        U5      R                  5       nUU" SUUS94$ [        U[        R                  5      (       a*  UR                  5       nUR                  S5      nUU" SXsS94$ [        U[        R                  5      (       aD  UR                   SUR                  S	 SUR                   S	 3nUR                  S
5      nUU" SXsS94$ [        U[        5      (       a
  UU" SUUS94$ UU" SUUS94$ )zConvert cell data to an OpenDocument spreadsheet cell

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

Returns
-------
pvalue, cell : Tuple[str, TableCell]
    Display value, Cell value
r   )rF   boolean)	valuetypebooleanvaluerw   z%cdate)r}   	datevaluerw   -02dz%xstring)r}   stringvaluerw   float)r}   valuerw   )r5   rF   ry   _value_with_fmtval
isinstanceboolstrlowerupperdatetime	isoformatstrftimer   yearmonthday)r%   rN   rF   rw   r   fmtri   r   s           r,   r[   ODSWriter._make_table_cell   sp    	(55d;
''1c4  HNN$EX^^%F'!&)  X..//MMOE\\$'FFeS  X]]++xxj#))C#''#?E\\$'FFeS  S!!& %)  %) r.   c                    g rK   r   r%   rt   s     r,   rs   ODSWriter._process_style   s    <?r.   c                    g rK   r   r   s     r,   rs   r      s    36r.   c                   SSK JnJnJnJn  Uc  g[
        R                  " U5      nX`R                  ;   a  U R                  U   $ S[        U R                  5      S-    3nXpR                  U'   U" USS9nSU;   a1  US   n	U	R                  S	S
5      (       a  UR                  U" S	S95        SU;   a>  US   n
U
R                  5        H%  u  pSS0nUR                  U" SU 3X   0S95        M'     SU;   a_  US   nUR                  S5      nU(       a  UR                  U" US95        UR                  S5      nU(       a  UR                  U" US95        U R                  R                  R                  U5        U$ )zConvert 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pdrR   z
table-cell)r4   familyfontboldF)
fontweightbordersthinz0.75pt solid #000000border)rw   	alignment
horizontal)	textalignvertical)verticalalign)	odf.styler   r   r   r   jsondumpsr$   r\   getr?   itemsr0   styles)r%   rt   r   r   r   r   	style_keyr4   	odf_styler   r   side	thicknessthickness_translationr   r   r   s                    r,   rs   r      s   	
 	
 =JJu%	(((##I..C(()A-./&*#tL9	U?=Dxx&&$$^v%FGI&G#*==?)/1G(H%$$'&,TFO5J5U#V $3 %k*I"|4J$$%8:%NO }}Z0H$$%8x%PQ		##I.r.   c           
        SSK JnJnJnJnJn  U" SS9nU R                  R                  R                  U5        U" SS9n	UR                  U	5        U" 5       n
U	R                  U
5        U" SS9nU
R                  U5        U" US9n
UR                  U
5        U
R                  U" SSS	S
95        U
R                  U" SSS	S
95        U
R                  U" SS[        US   5      S
95        U
R                  U" SS[        US   5      S
95        U
R                  U" SS[        US   5      S
95        U
R                  U" SS[        US   5      S
95        g)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-settingsrI   ViewsTablesHorizontalSplitModeshort2)r4   typerS   VerticalSplitModeHorizontalSplitPositionrW   VerticalSplitPositionrR   PositionRightPositionBottomN)

odf.configr   r   r   r   r   r0   settingsr?   r   )r%   r`   rc   r   r   r   r   r   config_item_setconfig_item_map_indexedconfig_item_map_entryconfig_item_map_nameds               r,   rX   ODSWriter._create_freeze_panes1  sm   	
 	
 (-@A		%%o6"6G"D""#:; 2 4**+@A 2 A(()>? 2
 C(()>?((1cJ	
 	((/gCH	
 	((.U\RS_AU	

 	((,5s<PQ??S	

 	((O%c,q/>RS	
 	((,5s<PQ??ST	
r.   )r!   r$   )NNNwNNN)r&   z)FilePath | WriteExcelBuffer | ExcelWriterr'   
str | Noner(   r   r)   r   r   r   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   ra   rW   rb   rW   rc   ztuple[int, int] | Nonerd   r   r   r   )rN   r   r   zdict[str, int | str])rN   r   r   ztuple[object, Any])rt   r   r   r   )rt   r   r   r   )rt   r   r   r   )r`   r   rc   ztuple[int, int]r   r   )__name__
__module____qualname____firstlineno___engine_supported_extensionsr#   propertyr0   r:   rC   rm   ry   r[   r	   rs   rX   __static_attributes____classcell__)r+   s   @r,   r   r   !   sk   G%
 ""&&*15;?/3.7. .  	.
 $. . /. 9. -. . 
. .<    - "&/3'+>->- >- 	>-
 >- ->- %>- 
>-@,@D ? ?6 62h9
9
-<9
	9
 9
r.   r   )
__future__r   collectionsr   r   r   typingr   r   r   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      sJ    " #    .
 8  2I
 I
r.   