
    .iT                        U d dl mZ d dlmZmZmZmZ d dlmZmZm	Z	 d dl
mZ d dlmZ erd dlmZmZ d dlmZmZmZmZmZ eez  ez  ez  ez  ez  ez  ez  Zded	<    G d
 ded         Zy)    )annotations)datedatetimetime	timedelta)TYPE_CHECKINGAny	TypeAlias)import_optional_dependency)BaseExcelReader)CalamineSheetCalamineWorkbook)FilePathNaTType
ReadBufferScalarStorageOptionsr
   
_CellValuec                       e Zd Z	 	 d	 	 	 	 	 	 	 d	 fdZed
d       Z	 	 	 	 	 	 ddZedd       ZddZddZ		 d	 	 	 	 	 ddZ
 xZS )CalamineReaderc                @    t        d       t        | 	  |||       y)a  
        Reader using calamine engine (xlsx/xls/xlsb/ods).

        Parameters
        ----------
        filepath_or_buffer : str, path to be parsed or
            an open readable stream.
        storage_options : dict, optional
            Extra options that make sense for a particular storage connection, e.g.
            host, port, username, password, etc. For HTTP(S) URLs the key-value pairs
            are forwarded to ``urllib.request.Request`` as header options. For other
            URLs (e.g. starting with "s3://", and "gcs://") the key-value pairs are
            forwarded to ``fsspec.open``. Please see ``fsspec`` and ``urllib`` for more
            details, and for more examples on storage options refer `here
            <https://pandas.pydata.org/docs/user_guide/io.html?
            highlight=storage_options#reading-writing-remote-files>`_.
        engine_kwargs : dict, optional
            Arbitrary keyword arguments passed to excel engine.
        python_calamine)storage_optionsengine_kwargsN)r   super__init__)selffilepath_or_bufferr   r   	__class__s       W/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/io/excel/_calamine.pyr   zCalamineReader.__init__%   s)    2 	##45+' 	 	
    c                    ddl m} |S )Nr   )r   )r   r   )r   r   s     r    _workbook_classzCalamineReader._workbook_classE   s    4r!   c                     ddl m}  ||fi |S )Nr   )load_workbook)r   r%   )r   r   r   r%   s       r    r%   zCalamineReader.load_workbookK   s     	2

 	
r!   c                    ddl m} | j                  j                  D cg c]'  }|j                  |j
                  k(  r|j                  ) c}S c c}w )Nr   )SheetTypeEnum)r   r'   booksheets_metadatatyp	WorkSheetname)r   r'   sheets      r    sheet_nameszCalamineReader.sheet_namesU   sG    1 22
yyM333 JJ
 	
 
s   ,Ac                Z    | j                  |       | j                  j                  |      S N)raise_if_bad_sheet_by_namer(   get_sheet_by_name)r   r,   s     r    r2   z CalamineReader.get_sheet_by_name_   s%    ''-yy**400r!   c                Z    | j                  |       | j                  j                  |      S r0   )raise_if_bad_sheet_by_indexr(   get_sheet_by_index)r   indexs     r    r5   z!CalamineReader.get_sheet_by_indexc   s%    ((/yy++E22r!   c           
         dd}|j                  d|      }|D cg c]  }|D cg c]
  } ||       c} }}}|S c c}w c c}}w )Nc                   t        | t              rt        |       }|| k(  r|S | S t        | t        t        f      r| S t        | t
              r+t        | j                  | j                  | j                        S t        | t              r| S | S r0   )

isinstancefloatintr   r   r   yearmonthdayr   )valuevals     r    _convert_cellz4CalamineReader.get_sheet_data.<locals>._convert_cellj   ss    %'%j%<J LEHi#89E4(

EKKCCE4(Lr!   F)skip_empty_areanrows)r?   r   returnzScalar | NaTType | time)	to_python)r   r-   file_rows_neededrA   rowsrowcelldatas           r    get_sheet_datazCalamineReader.get_sheet_datag   sV    	$ (-!)9 (7 (
 BFF#5t$5FF 6Fs   	A?AA)NN)r   FilePath | ReadBuffer[bytes]r   zStorageOptions | Noner   zdict | NonerD   None)rD   ztype[CalamineWorkbook])r   rL   r   r	   rD   r   )rD   z	list[str])r,   strrD   r   )r6   r;   rD   r   r0   )r-   r   rF   z
int | NonerD   z#list[list[Scalar | NaTType | time]])__name__
__module____qualname__r   propertyr#   r%   r.   r2   r5   rK   __classcell__)r   s   @r    r   r   $   s     26%)	
8
 /
 #	

 

@    

">
OR
	
 
 
13
 DH"6@	,r!   r   r   N)
__future__r   r   r   r   r   typingr   r	   r
   pandas.compat._optionalr   pandas.io.excel._baser   r   r   r   pandas._typingr   r   r   r   r   r;   r:   rN   boolr   __annotations__r    r!   r    <module>r\      sx    "   ? 1
  ec)D047$>IIU
I U]_%78 ]r!   