Ë
    •2Úi˜  ã            
       óp  — d dl Z d dlZd dlZd dlZddlmZ ddlmZmZm	Z	m
Z
mZmZ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­ ddlmZmZ dd	lmZ dd
lmZm Z m!Z! dddddddœZ"dZ# e$ e%e«       e%e#«      «      Z&dd„Z'dejP                  d dddddddf
d„Z)ejP                  dfd„Z*ejP                  fd„Z+y)é    Né   )Útimemachine)
ÚXL_CELL_BLANKÚXL_CELL_BOOLEANÚXL_CELL_DATEÚXL_CELL_EMPTYÚXL_CELL_ERRORÚXL_CELL_NUMBERÚXL_CELL_TEXTÚ	XLRDErrorÚbiff_text_from_numÚerror_text_from_code)ÚBookÚcolnameÚopen_workbook_xls)Ú	SIGNATURE)Ú*)Ú__VERSION__Ú__version__)Ú
empty_cell)ÚXLDateErrorÚxldate_as_datetimeÚxldate_as_tuplez	Excel xlszExcel 2007 xlsb filezExcel xlsx filezOpenoffice.org ODS filezUnknown ZIP filezUnknown file type)ÚxlsÚxlsbÚxlsxÚodsÚzipNs   PKc                 ó  — |r
|dt          }nIt        j                  j                  | «      } t	        | d«      5 }|j                  t         «      }ddd«       j                  t        «      ry|j                  t        «      rxt        j                  |rt        j                  |«      n| «      }|j                  «       D �ci c]#  }|j                  dd«      j                  «       |“Œ% }}d|v ryd|v ry	d
|v ryyy# 1 sw Y   Œ­xY wc c}w )a\  
    Inspect the content at the supplied path or the :class:`bytes` content provided
    and return the file's type as a :class:`str`, or ``None`` if it cannot
    be determined.

    :param path:
      A :class:`string <str>` path containing the content to inspect.
      ``~`` will be expanded.

    :param content:
      The :class:`bytes` content to inspect.

    :returns:
       A :class:`str`, or ``None`` if the format cannot be determined.
       The return value can always be looked up in :data:`FILE_FORMAT_DESCRIPTIONS`
       to return a human-readable description of the format found.
    NÚrbr   ú\ú/zxl/workbook.xmlr   zxl/workbook.binr   zcontent.xmlr   r   )Ú	PEEK_SIZEÚosÚpathÚ
expanduserÚopenÚreadÚ
startswithÚXLS_SIGNATUREÚZIP_SIGNATUREÚzipfileÚZipFiler   ÚBYTES_IOÚnamelistÚreplaceÚlower)r%   ÚcontentÚpeekÚfÚzfÚnameÚcomponent_namess          úD/var/www/html/acx/venv/lib/python3.12/site-packages/xlrd/__init__.pyÚinspect_formatr9   &   sý   € ñ$ Ø�zœ	Ð"‰ä�w‰w×!Ñ! $Ó'ˆÜ�$˜Óð 	% Ø—6‘6œ)Ó$ˆD÷	%ð ‡�”}Ô%Øà‡�”}Ô%Ü�_‰_¹gœ[×1Ñ1°'Ô:È4ÓPˆð (*§{¡{£}ö6Ø#ð  Ÿ<™<¨¨cÓ2×8Ñ8Ó:¸DÑ@ð 6ˆð 6ð  Ñ/ØØ Ñ/ØØ˜OÑ+ØØð &÷	%ð 	%üò6s   ¸C:Â?(DÃ:DTFc
                 ó€   — t        | |«      }
|
r|
dk7  rt        t        |
   dz   «      ‚t        | |||||||||	¬«
      }|S )a¢	  
    Open a spreadsheet file for data extraction.

    :param filename: The path to the spreadsheet file to be opened.

    :param logfile: An open file to which messages and diagnostics are written.

    :param verbosity: Increases the volume of trace material written to the
                      logfile.

    :param use_mmap:

      Whether to use the mmap module is determined heuristically.
      Use this arg to override the result.

      Current heuristic: mmap is used if it exists.

    :param file_contents:

      A string or an :class:`mmap.mmap` object or some other behave-alike
      object. If ``file_contents`` is supplied, ``filename`` will not be used,
      except (possibly) in messages.

    :param encoding_override:

      Used to overcome missing or bad codepage information
      in older-version files. See :doc:`unicode`.

    :param formatting_info:

      The default is ``False``, which saves memory.
      In this case, "Blank" cells, which are those with their own formatting
      information but no data, are treated as empty by ignoring the file's
      ``BLANK`` and ``MULBLANK`` records.
      This cuts off any bottom or right "margin" of rows of empty or blank
      cells.
      Only :meth:`~xlrd.sheet.Sheet.cell_value` and
      :meth:`~xlrd.sheet.Sheet.cell_type` are available.

      When ``True``, formatting information will be read from the spreadsheet
      file. This provides all cells, including empty and blank cells.
      Formatting information is available for each cell.

      Note that this will raise a NotImplementedError when used with an
      xlsx file.

    :param on_demand:

      Governs whether sheets are all loaded initially or when demanded
      by the caller. See :doc:`on_demand`.

    :param ragged_rows:

      The default of ``False`` means all rows are padded out with empty cells so
      that all rows have the same size as found in
      :attr:`~xlrd.sheet.Sheet.ncols`.

      ``True`` means that there are no empty cells at the ends of rows.
      This can result in substantial memory savings if rows are of widely
      varying sizes. See also the :meth:`~xlrd.sheet.Sheet.row_len` method.


    :param ignore_workbook_corruption:

      This option allows to read corrupted workbooks.
      When ``False`` you may face CompDocError: Workbook corruption.
      When ``True`` that exception will be ignored.

    :returns: An instance of the :class:`~xlrd.book.Book` class.
    r   z; not supported)
ÚfilenameÚlogfileÚ	verbosityÚuse_mmapÚfile_contentsÚencoding_overrideÚformatting_infoÚ	on_demandÚragged_rowsÚignore_workbook_corruption)r9   r   ÚFILE_FORMAT_DESCRIPTIONSr   )r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   Úfile_formatÚbks               r8   Úopen_workbookrH   T   sc   € ôd ! ¨=Ó9€Kñ �{ eÒ+ÜÔ0°Ñ=Ð>OÑOÓPÐPä	ØØØØØ#Ø+Ø'ØØØ#=ô
€Bð €Ió    c                 ó    — ddl m} t        «       }|j                  | |¬«        ||j                  |j
                  |j                  d||«       y)a  
    For debugging: dump an XLS file's BIFF records in char & hex.

    :param filename: The path to the file to be dumped.
    :param outfile: An open file, to which the dump is written.
    :param unnumbered: If true, omit offsets (for meaningful diffs).
    r   )Ú	biff_dump©r;   r<   r   N)ÚbiffhrK   r   Úbiff2_8_loadÚmemÚbaseÚ
stream_len)r;   ÚoutfileÚ
unnumberedrK   rG   s        r8   ÚdumprT   ¼   s<   € õ !Ü	‹€BØ‡O�O˜X¨w€OÔ9Ùˆb�f‰f�b—g‘g˜rŸ}™}¨a°¸*ÕErI   c                 óœ   — ddl m} t        «       }|j                  | |¬«        ||j                  |j
                  |j                  |«       y)a  
    For debugging and analysis: summarise the file's BIFF records.
    ie: produce a sorted file of ``(record_name, count)``.

    :param filename: The path to the file to be summarised.
    :param outfile: An open file, to which the summary is written.
    r   )Úbiff_count_recordsrL   N)rM   rV   r   rN   rO   rP   rQ   )r;   rR   rV   rG   s       r8   Úcount_recordsrW   Ê   s8   € õ *Ü	‹€BØ‡O�O˜X¨w€OÔ9Ù�r—v‘v˜rŸw™w¨¯©°wÕ?rI   )NN),r$   ÚpprintÚsysr,   Ú r   rM   r   r   r   r   r	   r
   r   r   r   r   Úbookr   r   r   Úcompdocr   r*   ÚformulaÚinfor   r   Úsheetr   Úxldater   r   r   rE   r+   ÚmaxÚlenr#   r9   ÚstdoutrH   rT   rW   © rI   r8   ú<module>re      sÉ   ðó 
Û Û 
Û å ÷÷ ÷ ÷
 3Ñ 2Ý /Ü ß *Ý ß DÑ Dð
 Ø"ØØ$ØØ
ñÐ ð €á‘�MÓ"¡C¨Ó$6Ó7€	ó+ð\  ØŸ*™*ØØØ $Ø$(Ø"'Ø!Ø#Ø-2óeðP Ÿ:™:°%ó Fð %(§J¡Jô @rI   