+
    xȇi(                         ^ RI Ht ^ RIHtHt ^ RIt^ RIHtH	t	H
t
Ht ^ RIHt ^ RIHt ^ RIt^ RIHt ^ RIHt ]'       d   ^ R	IHt ^ R
IHt ]! ]R,          R7       ! R R]R,          4      4       tR# )    )annotations)TYPE_CHECKINGcastN)FilePath
ReadBufferScalarStorageOptions)import_optional_dependency)doc)_shared_docs)BaseExcelReaderOpenDocument)NaTTypestorage_options)r   c                     a  ] tR t^tRR V 3R lllt]R R l4       tR R lt]R R l4       t]R	 R
 l4       t	R R lt
R R ltRR R lltR R ltR R ltR R ltR R ltRtV ;t# )	ODFReaderc               (    V ^8  d   QhRRRRRRRR/# )	   filepath_or_bufferFilePath | ReadBuffer[bytes]r   zStorageOptions | Noneengine_kwargszdict | NonereturnNone )formats   "j/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/io/excel/_odfreader.py__annotate__ODFReader.__annotate__    s2     
 
8
 /
 #	

 

    c                B   < \        R4       \        SV `	  VVVR7       R# )z
Read tables out of OpenDocument formatted files.

Parameters
----------
filepath_or_buffer : str, path to be parsed or
    an open readable stream.
{storage_options}
engine_kwargs : dict, optional
    Arbitrary keyword arguments passed to excel engine.
odf)r   r   N)r
   super__init__)selfr   r   r   	__class__s   &&&&r   r$   ODFReader.__init__    s(    " 	#5)+' 	 	
r    c                   V ^8  d   QhRR/# )r   r   ztype[OpenDocument]r   )r   s   "r   r   r   9   s      !3 r    c                	    ^ RI Hp V# )r   r   )odf.opendocumentr   )r%   r   s   & r   _workbook_classODFReader._workbook_class8   s    1r    c                    V ^8  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r   r   >   s     9 9">9	9r    c                	     ^ RI Hp V! V3/ VB # )r   )load)r*   r/   )r%   r   r   r/   s   &&& r   load_workbookODFReader.load_workbook>   s     	*&8-88r    c                   V ^8  d   QhRR/# r   r   strr   )r   s   "r   r   r   F   s      S r    c                    R# )z'Property for compat with other readers. r   )r%   s   &r   empty_valueODFReader.empty_valueE   s     r    c                   V ^8  d   QhRR/# )r   r   z	list[str]r   )r   s   "r   r   r   K   s     8 8Y 8r    c                    ^ RI Hp V P                  P                  V4      pV Uu. uF  q3P	                  R4      NK  	  up# u upi )z4Return a list of sheet names present in the documentTablename)	odf.tabler<   bookgetElementsByTypegetAttribute)r%   r<   tablests   &   r   sheet_namesODFReader.sheet_namesJ   s:     	$,,U30671v&777s   Ac                   V ^8  d   QhRR/# )r   indexintr   )r   s   "r   r   r   R   s       r    c                	v    ^ RI Hp V P                  V4       V P                  P	                  V4      pW1,          # )r   r;   )r>   r<   raise_if_bad_sheet_by_indexr?   r@   )r%   rG   r<   rB   s   &&  r   get_sheet_by_indexODFReader.get_sheet_by_indexR   s/    #((/,,U3}r    c                   V ^8  d   QhRR/# )r   r=   r4   r   )r   s   "r   r   r   Y   s     4 4c 4r    c                	    ^ RI Hp V P                  V4       V P                  P	                  V4      pV F  pVP                  R4      V8X  g   K  Vu # 	  V P                  4        \        RV R24      h)r   r;   r=   zsheet z
 not found)r>   r<   raise_if_bad_sheet_by_namer?   r@   rA   close
ValueError)r%   r=   r<   rB   tables   &&   r   get_sheet_by_nameODFReader.get_sheet_by_nameY   sh    #''-,,U3E!!&)T1  	

6$z233r    c                    V ^8  d   QhRRRR/# )r   file_rows_neededz
int | Noner   zlist[list[Scalar | NaTType]]r   )r   s   "r   r   r   f   s     > >'1>	%>r    c                H  a ^ RI HpHpHp V! 4       P                  pV! 4       P                  pWg0pVP                  V4      p	^ p
^ p. pV	 EF  p^ p. oVP                   F  p\        VR4      '       g   K  VP                  V9   g   K*  VP                  V8X  d   V P                  V4      pMV P                  pV P                  V4      pVV P                  8X  d   VV,          pK  SP                  V P                  .V,          4       ^ pSP                  V.V,          4       K  	  V\        S4      8  d   \        S4      pV P                  V4      p\        S4      ^ 8X  d   V
V,          p
MJVP                  V P                  ..V
,          4       ^ p
VP                  V3R l\        V4       4       4       Vf   EKs  \        V4      V8  g   EK   M	  V FH  p\        V4      V8  g   K  VP                  V P                  .V\        V4      ,
          ,          4       KJ  	  V# )z)
Parse an ODF Table into a list of lists
)CoveredTableCell	TableCellTableRowqnamec              3  (   <"   T F  pSx  K	  	  R # 5iNr   ).0_	table_rows   & r   	<genexpr>+ODFReader.get_sheet_data.<locals>.<genexpr>   s     B0A1Y0As   )r>   rX   rY   rZ   r[   r@   
childNodeshasattr_get_cell_valuer7   _get_column_repeatextendlen_get_row_repeatrange)r%   sheetrV   rX   rY   rZ   covered_cell_nametable_cell_name
cell_names
sheet_rows
empty_rowsmax_row_lenrR   	sheet_rowempty_cells
sheet_cellvaluecolumn_repeat
row_repeatrowr`   s   &&&                 @r   get_sheet_dataODFReader.get_sheet_dataf   s   	
 	
 -.44#+++'9
,,X6

.0#IK02I'22
:w//J4D4D
4R!''?: $ 4 4Z @ $ 0 0$($;$;J$GM  0 00#}4!(($*:*:);k)IJ&'!((%=)@A 3" S^+!)n--i8J9~"j(
 t//01J>?
Bj0ABB+E
>N0NC $H C3x+%

D,,-s3x1GHI  r    c                   V ^8  d   QhRR/# r   r   rH   r   )r   s   "r   r   r      s     M Mc Mr    c                \    ^ RI Hp \        VP                  P	                  VR3^4      4      # )z
Return number of times this row was repeated
Repeating an empty row appeared to be a common way
of representing sparse rows in the table.
TABLENSznumber-rows-repeatedodf.namespacesr   rH   
attributesget)r%   rx   r   s   && r   ri   ODFReader._get_row_repeat   s)     	+3>>%%w0F&GKLLr    c                   V ^8  d   QhRR/# r|   r   )r   s   "r   r   r      s     Q Q# Qr    c                	\    ^ RI Hp \        VP                  P	                  VR3^4      4      # )r   r~   znumber-columns-repeatedr   )r%   cellr   s   && r   rf   ODFReader._get_column_repeat   s'    *4??&&1J'KQOPPr    c                   V ^8  d   QhRR/# )r   r   zScalar | NaTTyper   )r   s   "r   r   r      s     %? %?'7 %?r    c                	   ^ RI Hp \        V4      R8X  d   \        P                  # VP
                  P                  VR34      pVR8X  d   \        V4      R8X  d   R# R# Vf   V P                  # VR8X  d<   \        VP
                  P                  VR	34      4      p\        V4      pWT8X  d   V# V# VR
8X  d)   VP
                  P                  VR	34      p\        V4      # VR8X  d   V P                  V4      # VR8X  d)   VP
                  P                  VR	34      p\        V4      # VR8X  d4   VP
                  P                  VR34      p\        P                  ! V4      # VR8X  d>   \        P                  ! \        V4      4      p\        \        VP                  4       4      # V P!                  4        \#        RV 24      h)r   )OFFICENSz#N/Az
value-typebooleanTRUETFfloatru   
percentagestringcurrencydatez
date-valuetimezUnrecognized type )r   r   r4   npnanr   r   r7   r   rH   _get_cell_string_valuepd	Timestampr   r   r   rP   rQ   )r%   r   r   	cell_type
cell_valuevalstamps   &&     r   re   ODFReader._get_cell_value   s   +t966MOO''<(@A		!4yF"###'!t22Hg3FGHJj/C 
,&,,h-@AJ$$("..t44*$,,h-@AJ$$& ,,h-EFJ<<
++& LLT+E

--JJL1)=>>r    c                   V ^8  d   QhRR/# r3   r   )r   s   "r   r   r      s      c r    c                D   ^ RI Hp ^ RIHp ^ RIHp ^ RIHp V! 4       P                  pV! 4       P                  p. pVP                   F  p	\        W4      '       d   V	P                  V8X  dB   \        V	P                  P                  VR3^4      4      p
VP                  RV
,          4       Kf  V	P                  V8X  d   Ky  VP                  V P                  V	4      4       K  VP                  \!        V	4      P#                  R4      4       K  	  RP%                  V4      # )	zl
Find and decode OpenDocument text:s tags that represent
a run length encoded sequence of space characters.
)Element)TEXTNS)
Annotation)Sc 
r6   )odf.elementr   r   r   
odf.officer   odf.textr   r[   rc   
isinstancerH   r   r   appendr   r4   stripjoin)r%   r   r   r   r   r   office_annotationtext_sru   fragmentspacess   &&         r   r    ODFReader._get_cell_string_value   s    
 	())&L..H(,,>>V+ !4!4!8!8&#!JKFLLv.^^'88
 LL!<!<X!FGS]0067 ( wwu~r    r   )NNr]   )__name__
__module____qualname____firstlineno__r$   propertyr+   r0   r7   rD   rK   rS   ry   ri   rf   re   r   __static_attributes____classcell__)r&   s   @r   r   r      sz    
 
0  
9   8 84>@MQ
%?N r    r   r   )
__future__r   typingr   r   numpyr   pandas._typingr   r   r   r	   pandas.compat._optionalr
   pandas.util._decoratorsr   pandasr   pandas.core.shared_docsr   pandas.io.excel._baser   r*   r   pandas._libs.tslibs.nattyper   r   r   r    r   <module>r      sd    "
   ? '  0 1-3 \"345Z/ Z 6Zr    