gL i ddlmZddlmZmZmZmZddlmZmZm Z ddl m Z ddl m Z ddlZddlmZddlmZerdd lmZmZdd lmZmZmZmZmZe eeee eeeefZ!Gd d ed Z"y)) annotations)datedatetimetime timedelta) TYPE_CHECKINGAnyUnion)import_optional_dependency)docN) _shared_docs)BaseExcelReader) CalamineSheetCalamineWorkbook)FilePathNaTType ReadBufferScalarStorageOptionsceZdZeed d d fd Zed dZ d dZeddZ ddZ ddZ d dd Z xZ S)CalamineReaderstorage_options)rc@tdt| |||y)aG Reader using calamine engine (xlsx/xls/xlsb/ods). 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. python_calamine)r engine_kwargsN)r super__init__)selffilepath_or_bufferrr __class__s _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/io/excel/_calamine.pyrzCalamineReader.__init__)s)$ ##45  +'  cddlm}|S)Nr)r)rr)rrs r!_workbook_classzCalamineReader._workbook_classBs 4r"c ddlm}||fi|S)Nr) load_workbook)rr&)rrrr&s r!r&zCalamineReader.load_workbookHs 2/A=AAr"cddlm}|jjDcgc]'}|j|j k(r |j )c}Scc}w)Nr) SheetTypeEnum)rr(booksheets_metadatatyp WorkSheetname)rr(sheets r! sheet_nameszCalamineReader.sheet_namesOsG122 yyM333 JJ   s,AcZ|j||jj|SN)raise_if_bad_sheet_by_namer)get_sheet_by_name)rr-s r!r3z CalamineReader.get_sheet_by_nameYs% ''-yy**400r"cZ|j||jj|Sr1)raise_if_bad_sheet_by_indexr)get_sheet_by_index)rindexs r!r6z!CalamineReader.get_sheet_by_index]s% ((/yy++E22r"c dd}|jd|}|Dcgc]}|Dcgc] }|| c}}}}|Scc}wcc}}w)Nct|trt|}||k(r|S|St|trt j |St|t rt j|St|tr|S|Sr1) isinstancefloatintrpd Timestampr Timedeltar)valuevals r! _convert_cellz4CalamineReader.get_sheet_data.._convert_celldsl%'%j%<J LE4(||E**E9-||E**E4( Lr"F)skip_empty_areanrows)r@ _CellValuereturnzScalar | NaTType | time) to_python)rr.file_rows_neededrBrowsrowcelldatas r!get_sheet_datazCalamineReader.get_sheet_dataasV  (-!)9(7( BFF#5t$5FF 6Fs A? AA)NN)rFilePath | ReadBuffer[bytes]rzStorageOptions | Nonerz dict | NonerFNone)rFztype[CalamineWorkbook])rrNrr rFr)rFz list[str])r-strrFr)r7r<rFrr1)r.rrHz int | NonerFz#list[list[Scalar | NaTType | time]])__name__ __module__ __qualname__r r rpropertyr$r&r/r3r6rM __classcell__)r s@r!rr(s&78926%)  8 / #    : 0  B">BORB B  13 DH"6@ ,r"rr)# __future__rrrrrtypingrr r pandas.compat._optionalr pandas.util._decoratorsr pandasr=pandas.core.shared_docsr pandas.io.excel._baserrrrpandas._typingrrrrrr<r;rPboolrErr"r!r`sp"  ?'01 3sD$h I J Q_%78Qr"