
    Mh                        S SK Jr  S SKJr  S SKrS SKJr  S SKrS SK	J
r
  S SKJr  S SKJr  S SKJr  \(       a  S S	KJr  S S
KJrJr   " S S\S   5      rg)    )annotations)timeN)TYPE_CHECKING)import_optional_dependency)doc)_shared_docs)BaseExcelReaderBook)ScalarStorageOptionsc                     ^  \ rS rSr\" \S   S9  S     SU 4S jjj5       r\SS j5       rSS jr	\S 5       r
S rS	 r S   SS
 jjrSrU =r$ )
XlrdReader   storage_options)r   c                <   > Sn[        SUS9  [        TU ]	  UUUS9  g)z
Reader using xlrd engine.

Parameters
----------
filepath_or_buffer : str, path object or Workbook
    Object to be parsed.
{storage_options}
engine_kwargs : dict, optional
    Arbitrary keyword arguments passed to excel engine.
z+Install xlrd >= 2.0.1 for xls Excel supportxlrd)extra)r   engine_kwargsN)r   super__init__)selffilepath_or_bufferr   r   err_msg	__class__s        G/var/www/html/env/lib/python3.13/site-packages/pandas/io/excel/_xlrd.pyr   XlrdReader.__init__   s0    $ @"69+' 	 	
    c                    SSK Jn  U$ )Nr   r
   )r   r   )r   r   s     r   _workbook_classXlrdReader._workbook_class4   s
    r   c                v    SSK Jn  [        US5      (       a  UR                  5       nU" SSU0UD6$ U" U40 UD6$ )Nr   )open_workbookreadfile_contents )r   r#   hasattrr$   )r   r   r   r#   datas        r   load_workbookXlrdReader.load_workbook:   sE    &%v..%**,D EtE}EE !3E}EEr   c                6    U R                   R                  5       $ N)booksheet_names)r   s    r   r.   XlrdReader.sheet_namesC   s    yy$$&&r   c                Z    U R                  U5        U R                  R                  U5      $ r,   )raise_if_bad_sheet_by_namer-   sheet_by_name)r   names     r   get_sheet_by_nameXlrdReader.get_sheet_by_nameG   s%    ''-yy&&t,,r   c                Z    U R                  U5        U R                  R                  U5      $ r,   )raise_if_bad_sheet_by_indexr-   sheet_by_index)r   indexs     r   get_sheet_by_indexXlrdReader.get_sheet_by_indexK   s%    ((/yy''..r   c           	       ^
^^^^^ SSK Jm
JmJmJmJm  U R                  R                  mU
UUUUU4S jn/ nUR                  nUb  [        XR5      n[        U5       HX  n[        UR                  U5      UR                  U5      5       VVs/ s H  u  pxU" Xx5      PM     n	nnUR                  U	5        MZ     U$ s  snnf )Nr   )XL_CELL_BOOLEANXL_CELL_DATEXL_CELL_ERRORXL_CELL_NUMBERxldatec                  > UT:X  ax   T	R                  U T5      n U R                  5       SS nT(       d  US:X  d  T(       a<  US:X  a6  [        U R                  U R
                  U R                  U R                  5      n U $ UT:X  a  [        R                  n U $ UT:X  a  [        U 5      n U $ UT:X  a-  [        R                  " U 5      (       a  [        U 5      nX0:X  a  Un U $ ! [         a    U s $ f = f)zD
converts the contents of the cell into a pandas appropriate object
r      )ik        )ip     rF   )xldate_as_datetimeOverflowError	timetupler   hourminutesecondmicrosecondnpnanboolmathisfiniteint)
cell_contentscell_typyearvalr=   r>   r?   r@   	epoch1904rA   s
       r   _parse_cell.XlrdReader.get_sheet_data.<locals>._parse_cell\   s	    <')$*$=$=mY$WM &//11Q7!dn&<$,"6$(%**%,,%,,%11	%M& !  ]* " !  _, $] 3 !  ^+ ==//m,C+(+  ; % )(()s   C   C/.C/)r   r=   r>   r?   r@   rA   r-   datemodenrowsminrangezip
row_values	row_typesappend)r   sheetfile_rows_neededrY   r(   r\   ivaluetyprowr=   r>   r?   r@   rX   rA   s             @@@@@@r   get_sheet_dataXlrdReader.get_sheet_dataO   s    	
 	
 II&&	%	! %	!N '0EuA #&e&6&6q&95??1;M"N"NJE E'"N   KK  s   B;r&   )NN)r   zStorageOptions | Noner   zdict | NonereturnNone)rk   z
type[Book])rk   r   r,   )rd   z
int | Nonerk   zlist[list[Scalar]])__name__
__module____qualname____firstlineno__r   r   r   propertyr    r)   r.   r4   r:   ri   __static_attributes____classcell__)r   s   @r   r   r      s    &789 26%)	
 /
 #	

 

 :
2  
F ' '-/
 59@'1@	@ @r   r   r   )
__future__r   datetimer   rQ   typingr   numpyrN   pandas.compat._optionalr   pandas.util._decoratorsr   pandas.core.shared_docsr   pandas.io.excel._baser	   r   r   pandas._typingr   r   r   r&   r   r   <module>r}      s>    "      > ' 0 1v( vr   