Ë
    ž…j.  ã                  ó˜  — d Z ddlmZ ddlmZmZ ddl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 dd	lmZ dd
lmZmZmZ ddlmZ  ed«       G d„ ded   e«      «       Zedddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zedddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Z ed«      dddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„«       Zy)z#
Read SAS sas7bdat or xport files.
é    )Úannotations)ÚABCÚabstractmethod)ÚIterator)ÚTYPE_CHECKINGÚSelfÚoverload)Ú
set_module)Ústringify_path)ÚHashable)ÚTracebackType)ÚCompressionOptionsÚFilePathÚ
ReadBuffer)Ú	DataFramezpandas.api.typingc                  óV   — e Zd ZdZeddd„«       Zed	d„«       Zd
d„Z	 	 	 	 	 	 	 	 dd„Zy)Ú	SASReaderz<
    Abstract class for XportReader and SAS7BDATReader.
    Nc                 ó   — y ©N© )ÚselfÚnrowss     úX/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/io/sas/sasreader.pyÚreadzSASReader.read)   s   € Ø;>ó    c                 ó   — y r   r   ©r   s    r   ÚclosezSASReader.close,   s   € Ø r   c                ó   — | S r   r   r   s    r   Ú	__enter__zSASReader.__enter__/   s   € Øˆr   c                ó$   — | j                  «        y r   )r   )r   Úexc_typeÚ	exc_valueÚ	tracebacks       r   Ú__exit__zSASReader.__exit__2   s   € ð 	�
‰
�r   r   )r   ú
int | NoneÚreturnr   )r'   ÚNone)r'   r   )r"   ztype[BaseException] | Noner#   zBaseException | Noner$   zTracebackType | Noner'   r(   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r    r%   r   r   r   r   r   #   sU   „ ñð Û>ó Ø>àÚ ó Ø óðà,ðð (ðð (ð	ð
 
ôr   r   r   .)ÚformatÚindexÚencodingÚ	chunksizeÚiteratorÚcompressionc                ó   — y r   r   ©Úfilepath_or_bufferr-   r.   r/   r0   r1   r2   s          r   Úread_sasr6   ;   s   € ð r   c                ó   — y r   r   r4   s          r   r6   r6   H   s   € ð  r   ÚpandasNFÚinferc               ó¼  — |€Td}t        | «      } t        | t        «      st        |«      ‚| j	                  «       }d|v rd}nd|v rd}nt        d|›�«      ‚|j	                  «       dk(  rdd	lm}	  |	| ||||¬
«      }
n2|j	                  «       dk(  rddlm}  || ||||¬
«      }
nt        d«      ‚|s|r|
S |
5  |
j                  «       cddd«       S # 1 sw Y   yxY w)a¢
  
    Read SAS files stored as either XPORT or SAS7BDAT format files.

    Parameters
    ----------
    filepath_or_buffer : str, path object, or file-like object
        String, path object (implementing ``os.PathLike[str]``), or file-like
        object implementing a binary ``read()`` function. The string could be
        a URL. Valid URL schemes include http, ftp, s3, and file. For file
        URLs, a host is expected. A local file could be:
        ``file://localhost/path/to/table.sas7bdat``.
    format : str {'xport', 'sas7bdat'} or None
        If None, file format is inferred from file extension. If 'xport' or
        'sas7bdat', uses the corresponding format.
    index : identifier of index column, defaults to None
        Identifier of column that should be used as index of the DataFrame.
    encoding : str, default is None
        Encoding for text data.  If None, text data are stored as raw bytes.
    chunksize : int
        Read file `chunksize` lines at a time, returns iterator.
    iterator : bool, defaults to False
        If True, returns an iterator for reading the file incrementally.
    compression : str or dict, default 'infer'
        For on-the-fly decompression of on-disk data. If 'infer' and
        'filepath_or_buffer' is path-like, then detect compression from the
        following extensions: '.gz', '.bz2', '.zip', '.xz', '.zst', '.tar',
        '.tar.gz', '.tar.xz' or '.tar.bz2' (otherwise no compression).
        Set to ``None`` for no decompression.
        Can also be a dict with key ``'method'`` set to one of {``'zip'``,
        ``'gzip'``, ``'bz2'``, ``'zstd'``, ``'xz'``, ``'tar'``} and other
        key-value pairs are forwarded to ``zipfile.ZipFile``,
        ``gzip.GzipFile``, ``bz2.BZ2File``, ``zstandard.ZstdCompressor``,
        ``lzma.LZMAFile`` or ``tarfile.TarFile``, respectively.
        As an example, the following could be passed for faster compression
        and to create a reproducible gzip archive:
        ``compression={'method': 'gzip', 'compresslevel': 1, 'mtime': 1}``.

    Returns
    -------
    DataFrame, SAS7BDATReader, or XportReader
        DataFrame if iterator=False and chunksize=None, else SAS7BDATReader
        or XportReader, file format is inferred from file extension.

    See Also
    --------
    read_csv : Read a comma-separated values (csv) file into a DataFrame.
    read_excel : Read an Excel file into a pandas DataFrame.
    read_spss : Read an SPSS file into a pandas DataFrame.
    read_orc : Load an ORC object into a pandas DataFrame.
    read_feather : Load a feather-format object into a pandas DataFrame.

    Examples
    --------
    >>> df = pd.read_sas("sas_data.sas7bdat")  # doctest: +SKIP
    NzVIf this is a buffer object rather than a string name, you must specify a format stringz.xptÚxportz	.sas7bdatÚsas7bdatz2unable to infer format of SAS file from filename: r   )ÚXportReader)r.   r/   r0   r2   )ÚSAS7BDATReaderzunknown SAS format)
r   Ú
isinstanceÚstrÚ
ValueErrorÚlowerÚpandas.io.sas.sas_xportr=   Úpandas.io.sas.sas7bdatr>   r   )r5   r-   r.   r/   r0   r1   r2   Úbuffer_error_msgÚfnamer=   Úreaderr>   s               r   r6   r6   U   s	  € ðD €~ðCð 	ô ,Ð,>Ó?ÐÜÐ,¬cÔ2ÜÐ-Ó.Ð.Ø"×(Ñ(Ó*ˆØ�U‰?Ø‰FØ˜EÑ!Ø‰FäØDÀUÀIÐNóð ð
 ‡|�|ƒ~˜Ò Ý7áØØØØØ#ô
‰ð 
�‰‹˜:Ò	%Ý9áØØØØØ#ô
‰ô Ð-Ó.Ð.á‘9Øˆà	ñ Ø�{‰{‹}÷÷ ò ús   Â8CÃC)r5   úFilePath | ReadBuffer[bytes]r-   ú
str | Noner.   úHashable | Noner/   rI   r0   Úintr1   Úboolr2   r   r'   r   )r5   rH   r-   rI   r.   rJ   r/   rI   r0   r(   r1   rL   r2   r   r'   úDataFrame | SASReader)r5   rH   r-   rI   r.   rJ   r/   rI   r0   r&   r1   rL   r2   r   r'   rM   )r,   Ú
__future__r   Úabcr   r   Úcollections.abcr   Útypingr   r   r	   Úpandas.util._decoratorsr
   Úpandas.io.commonr   r   Útypesr   Úpandas._typingr   r   r   r8   r   r   r6   r   r   r   ú<module>rV      sÜ  ðñõ #÷õ %÷ñ õ /å +áÝ(Ý#÷ñ õ !ñ ÐÓ ô�˜Ñ% só ó !ðð. 
ð Ø ØØØØ&)ñ	Ø4ð	ð ð	ð ð		ð
 ð	ð ð	ð ð	ð $ð	ð ò	ó 
ð	ð 
ð Ø ØØØØ&)ñ	 Ø4ð	 ð ð	 ð ð		 ð
 ð	 ð ð	 ð ð	 ð $ð	 ð ò	 ó 
ð	 ñ ˆHÓð Ø!ØØ ØØ&-ñoØ4ðoð ðoð ð	oð
 ðoð ðoð ðoð $ðoð òoó ñor   