Ë
    ¤ehF   ã                  óÎ   — d dl mZ d dlmZmZ d dlZd dlmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlZd dlmZ d dlmZ erd d	lmZ d d
lmZ  eed   ¬«       G d„ ded   «      «       Zy)é    )Úannotations)ÚTYPE_CHECKINGÚcastN)ÚFilePathÚ
ReadBufferÚScalarÚStorageOptions)Úimport_optional_dependency)Údoc)Ú_shared_docs)ÚBaseExcelReader©ÚOpenDocument)ÚNaTTypeÚstorage_options)r   c                  ó¼   ‡ — e Zd Z	 	 d	 	 	 	 	 	 	 dˆ fd„Zedd„«       Z	 	 	 	 dd„Zedd„«       Zedd„«       Zdd„Z	dd„Z
	 d	 	 	 dd„Zdd	„Zdd
„Zdd„Zdd„Zˆ xZS )Ú	ODFReaderc                ó@   •— t        d«       t        ‰| �	  |||¬«       y)aF  
        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   Úengine_kwargsN)r
   ÚsuperÚ__init__)ÚselfÚfilepath_or_bufferr   r   Ú	__class__s       €úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/io/excel/_odfreader.pyr   zODFReader.__init__    s(   ø€ ô" 	# 5Ô)Ü‰ÑØØ+Ø'ð 	õ 	
ó    c                ó   — ddl m} |S )Nr   r   )Úodf.opendocumentr   )r   r   s     r   Ú_workbook_classzODFReader._workbook_class8   s   € å1àÐr   c                ó    — ddl m}  ||fi |¤ŽS )Nr   )Úload)r   r"   )r   r   r   r"   s       r   Úload_workbookzODFReader.load_workbook>   s   € õ 	*áÐ&Ñ8¨-Ñ8Ð8r   c                 ó   — y)z'Property for compat with other readers.Ú © )r   s    r   Úempty_valuezODFReader.empty_valueE   s   € ð r   c                óŒ   — ddl m} | j                  j                  |«      }|D �cg c]  }|j	                  d«      ‘Œ c}S c c}w )z4Return a list of sheet names present in the documentr   ©ÚTableÚname)Ú	odf.tabler*   ÚbookÚgetElementsByTypeÚgetAttribute)r   r*   ÚtablesÚts       r   Úsheet_nameszODFReader.sheet_namesJ   s8   € õ 	$à—‘×,Ñ,¨UÓ3ˆØ06Ö7¨1�—‘˜vÕ&Ò7Ð7ùÒ7s   ¦Ac                óp   — ddl m} | j                  |«       | j                  j	                  |«      }||   S )Nr   r)   )r,   r*   Úraise_if_bad_sheet_by_indexr-   r.   )r   Úindexr*   r0   s       r   Úget_sheet_by_indexzODFReader.get_sheet_by_indexR   s1   € Ý#à×(Ñ(¨Ô/Ø—‘×,Ñ,¨UÓ3ˆØ�e‰}Ðr   c                óâ   — ddl m} | j                  |«       | j                  j	                  |«      }|D ]  }|j                  d«      |k(  sŒ|c S  | j                  «        t        d|› d�«      ‚)Nr   r)   r+   zsheet z
 not found)r,   r*   Úraise_if_bad_sheet_by_namer-   r.   r/   ÚcloseÚ
ValueError)r   r+   r*   r0   Útables        r   Úget_sheet_by_namezODFReader.get_sheet_by_nameY   sm   € Ý#à×'Ñ'¨Ô-Ø—‘×,Ñ,¨UÓ3ˆàò 	ˆEØ×!Ñ! &Ó)¨TÓ1Ø’ð	ð 	�
‰
ŒÜ˜6 $  zÐ2Ó3Ð3r   c                óð  ‡— ddl m}m}m}  |«       j                  } |«       j                  }||h}|j                  |«      }	d}
d}g }|	D �]a  }|j                  D �cg c]  }t        |d«      r|j                  |v r|‘Œ  }}d}g Š|D ]‹  }|j                  |k(  r| j                  |«      }n| j                  }| j                  |«      }|| j                  k(  r||z  }ŒV‰j                  | j                  g|z  «       d}‰j                  |g|z  «       Œ� |t        ‰«      k  rt        ‰«      }| j                  |«      }t        ‰«      dk(  r|
|z  }
nE|j                  | j                  gg|
z  «       d}
|j                  ˆfd„t        |«      D «       «       |€�ŒRt        |«      |k\  s�Œb n |D ]<  }t        |«      |k  sŒ|j                  | j                  g|t        |«      z
  z  «       Œ> |S c c}w )z9
        Parse an ODF Table into a list of lists
        r   )ÚCoveredTableCellÚ	TableCellÚTableRowÚqnamec              3  ó"   •K  — | ]  }‰–— Œ y ­w©Nr&   )Ú.0Ú_Ú	table_rows     €r   ú	<genexpr>z+ODFReader.get_sheet_data.<locals>.<genexpr>Ÿ   s   øè ø€ ÒB¨1œYÑBùs   ƒ)r,   r>   r?   r@   rA   r.   Ú
childNodesÚhasattrÚ_get_cell_valuer'   Ú_get_column_repeatÚextendÚlenÚ_get_row_repeatÚrange)r   ÚsheetÚfile_rows_neededr>   r?   r@   Úcovered_cell_nameÚtable_cell_nameÚ
cell_namesÚ
sheet_rowsÚ
empty_rowsÚmax_row_lenr;   Ú	sheet_rowÚxÚsheet_cellsÚempty_cellsÚ
sheet_cellÚvalueÚcolumn_repeatÚ
row_repeatÚrowrF   s                         @r   Úget_sheet_datazODFReader.get_sheet_dataf   s  ø€ ÷	
ñ 	
ñ -Ó.×4Ñ4ÐÙ#›+×+Ñ+ˆØ'¨Ð9ˆ
à×,Ñ,¨XÓ6ˆ
Øˆ
Øˆà.0ˆà#ó %	ˆIð #×-Ñ-öàÜ˜1˜gÔ&¨1¯7©7°jÑ+@ò ðˆKð ð
 ˆKØ02ˆIà)ò >�
Ø×#Ñ# Ò6Ø ×0Ñ0°Ó<‘Eà ×,Ñ,�Eà $× 7Ñ 7¸
Ó C�ð ˜D×,Ñ,Ò,Ø =Ñ0‘Kà×$Ñ$ d×&6Ñ&6Ð%7¸+Ñ%EÔFØ"#�KØ×$Ñ$ e W¨}Ñ%<Õ=ð>ð  œS ›^Ò+Ü! )›n�à×-Ñ-¨iÓ8ˆJÜ�9‹~ Ò"Ø˜jÑ(‘
ð —‘˜t×/Ñ/Ð0Ð1°JÑ>Ô?Ø�
Ø—‘ÓB´°jÓ0AÔBÔBØÒ+´°E³
Ð>NÔ0NÙðK%	ðP ò 	JˆCÜ�3‹x˜+Ó%Ø—
‘
˜D×,Ñ,Ð-°¼sÀ3»xÑ1GÑHÕIð	Jð ˆùòWs   Á#G3c                ó\   — ddl m} t        |j                  j	                  |dfd«      «      S )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.
        r   ©ÚTABLENSznumber-rows-repeatedé   ©Úodf.namespacesrd   ÚintÚ
attributesÚget)r   r`   rd   s      r   rN   zODFReader._get_row_repeatª   s)   € õ 	+ä�3—>‘>×%Ñ% wÐ0FÐ&GÈÓKÓLÐLr   c                ó\   — ddl m} t        |j                  j	                  |dfd«      «      S )Nr   rc   znumber-columns-repeatedre   rf   )r   Úcellrd   s      r   rK   zODFReader._get_column_repeat´   s'   € Ý*ä�4—?‘?×&Ñ&¨Ð1JÐ'KÈQÓOÓPÐPr   c                óT  — ddl m} t        |«      dk(  rt        j                  S |j
                  j                  |df«      }|dk(  rt        |«      dk(  ryy|€| j                  S |d	k(  r:t        |j
                  j                  |d
f«      «      }t        |«      }||k(  r|S |S |dk(  r(|j
                  j                  |d
f«      }t        |«      S |dk(  r| j                  |«      S |dk(  r(|j
                  j                  |d
f«      }t        |«      S |dk(  r2|j
                  j                  |df«      }t        j                  |«      S |dk(  r<t        j                  t        |«      «      }t        t        |j                  «       «      S | j!                  «        t#        d|› �«      ‚)Nr   )ÚOFFICENSz#N/Az
value-typeÚbooleanÚTRUETFÚfloatr]   Ú
percentageÚstringÚcurrencyÚdatez
date-valueÚtimezUnrecognized type )rg   rn   ÚstrÚnpÚnanri   rj   r'   rq   rh   Ú_get_cell_string_valueÚpdÚ	Timestampr   r   rv   r9   r:   )r   rl   rn   Ú	cell_typeÚ
cell_valueÚvalÚstamps          r   rJ   zODFReader._get_cell_value¹   s‹  € Ý+äˆt‹9˜ÒÜ—6‘6ˆMà—O‘O×'Ñ'¨°<Ð(@ÓAˆ	Ø˜	Ò!Ü�4‹y˜FÒ"ØØØÐØ×#Ñ#Ð#Ø˜'Ò!ä˜tŸ™×2Ñ2°H¸gÐ3FÓGÓHˆJÜ�j“/ˆCØ�jÒ Ø�
ØÐØ˜,Ò&ØŸ™×,Ñ,¨h¸Ð-@ÓAˆJÜ˜Ó$Ð$Ø˜(Ò"Ø×.Ñ.¨tÓ4Ð4Ø˜*Ò$ØŸ™×,Ñ,¨h¸Ð-@ÓAˆJÜ˜Ó$Ð$Ø˜&Ò ØŸ™×,Ñ,¨h¸Ð-EÓFˆJÜ—<‘< 
Ó+Ð+Ø˜&Ò Ü—L‘L¤ T£Ó+ˆEäœ §
¡
£Ó-Ð-à�J‰JŒLÜÐ1°)°Ð=Ó>Ð>r   c                ó   — ddl m} ddlm} ddlm} ddlm}  |«       j                  } |«       j                  }g }|j                  D ]³  }	t        |	|«      r||	j                  |k(  r<t        |	j                  j                  |dfd«      «      }
|j                  d|
z  «       ŒZ|	j                  |k(  rŒj|j                  | j                  |	«      «       Œ‹|j                  t!        |	«      j#                  d	«      «       Œµ d
j%                  |«      S )z„
        Find and decode OpenDocument text:s tags that represent
        a run length encoded sequence of space characters.
        r   )ÚElement)ÚTEXTNS)Ú
Annotation)ÚSÚcre   ú ú
r%   )Úodf.elementr‚   rg   rƒ   Ú
odf.officer„   Úodf.textr…   rA   rH   Ú
isinstancerh   ri   rj   Úappendrz   rw   ÚstripÚjoin)r   rl   r‚   rƒ   r„   r…   Úoffice_annotationÚtext_sr]   ÚfragmentÚspacess              r   rz   z ODFReader._get_cell_string_valueà   sÜ   € õ
 	(Ý)Ý)Ýá&›L×.Ñ.ÐÙ“—‘ˆàˆàŸ™ò 	8ˆHÜ˜( GÔ,Ø—>‘> VÒ+Ü  ×!4Ñ!4×!8Ñ!8¸&À#¸ÈÓ!JÓK�FØ—L‘L  v¡Õ.Ø—^‘^Ð'8Ò8Øð
 —L‘L ×!<Ñ!<¸XÓ!FÕGà—‘œS ›]×0Ñ0°Ó6Õ7ð	8ð �w‰w�u‹~Ðr   )NN)r   úFilePath | ReadBuffer[bytes]r   zStorageOptions | Noner   zdict | NoneÚreturnÚNone)r•   ztype[OpenDocument])r   r”   r•   r   )r•   rw   )r•   z	list[str])r5   rh   )r+   rw   rC   )rQ   z
int | Noner•   zlist[list[Scalar | NaTType]])r•   rh   )r•   zScalar | NaTType)Ú__name__Ú
__module__Ú__qualname__r   Úpropertyr    r#   r'   r2   r6   r<   ra   rN   rK   rJ   rz   Ú__classcell__)r   s   @r   r   r      sÆ   ø„ ð
 26Ø%)ð	
à8ð
ð /ð
ð #ð	
ð
 
õ
ð0 òó ðð
9Ø">ð9à	ó9ð òó ðð ò8ó ð8óó4ð 59ðBØ'1ðBà	%óBóHMóQó
%?÷Nr   r   r   )Ú
__future__r   Útypingr   r   Únumpyrx   Ú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ô^� Ñ/ó ^ó 6ñ^r   