Ë
    ìmxi:1  ã                   ó´   — d dl mZ d dlZd dlmZ d dlmZ d dlmZ  G d„ d«      Z	dZ
 G d„ d	«      Zdd
„Zde_        ddddddddddddœd„Zde
› d�e_        y)é    )ÚIntegralN)ÚTable)Ú_resolve_filesystem_and_pathc                   ó>  — e Zd ZdZd„ Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zdd„Zdd„Zdd„Zy)ÚORCFilea  
    Reader interface for a single ORC file

    Parameters
    ----------
    source : str or pyarrow.NativeFile
        Readable source. For passing Python file objects or byte buffers,
        see pyarrow.io.PythonFileInterface or pyarrow.io.BufferReader.
    c                 ól   — t        j                  «       | _        | j                  j                  |«       y ©N)Ú_orcÚ	ORCReaderÚreaderÚopen)ÚselfÚsources     úB/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/orc.pyÚ__init__zORCFile.__init__&   s"   € Ü—n‘nÓ&ˆŒØ�‰×Ñ˜Õ ó    c                 ó6   — | j                   j                  «       S )z/The file metadata, as an arrow KeyValueMetadata)r   Úmetadata©r   s    r   r   zORCFile.metadata*   ó   € ð �{‰{×#Ñ#Ó%Ð%r   c                 ó6   — | j                   j                  «       S )z#The file schema, as an arrow schema)r   Úschemar   s    r   r   zORCFile.schema/   s   € ð �{‰{×!Ñ!Ó#Ð#r   c                 ó6   — | j                   j                  «       S )zThe number of rows in the file)r   Únrowsr   s    r   r   zORCFile.nrows4   s   € ð �{‰{× Ñ Ó"Ð"r   c                 ó6   — | j                   j                  «       S )z!The number of stripes in the file)r   Únstripesr   s    r   r   zORCFile.nstripes9   r   r   c                 ó6   — | j                   j                  «       S )z4Format version of the ORC file, must be 0.11 or 0.12)r   Úfile_versionr   s    r   r   zORCFile.file_version>   s   € ð �{‰{×'Ñ'Ó)Ð)r   c                 ó6   — | j                   j                  «       S )z2Software instance and version that wrote this file)r   Úsoftware_versionr   s    r   r    zORCFile.software_versionC   ó   € ð �{‰{×+Ñ+Ó-Ð-r   c                 ó6   — | j                   j                  «       S )zCompression codec of the file)r   Úcompressionr   s    r   r#   zORCFile.compressionH   ó   € ð �{‰{×&Ñ&Ó(Ð(r   c                 ó6   — | j                   j                  «       S )z?Number of bytes to buffer for the compression codec in the file)r   Úcompression_sizer   s    r   r&   zORCFile.compression_sizeM   r!   r   c                 ó6   — | j                   j                  «       S )z{Name of the writer that wrote this file.
        If the writer is unknown then its Writer ID
        (a number) is returned)r   Úwriterr   s    r   r(   zORCFile.writerR   s   € ð
 �{‰{×!Ñ!Ó#Ð#r   c                 ó6   — | j                   j                  «       S )zVersion of the writer)r   Úwriter_versionr   s    r   r*   zORCFile.writer_versionY   ó   € ð �{‰{×)Ñ)Ó+Ð+r   c                 ó6   — | j                   j                  «       S )zRNumber of rows per an entry in the row index or 0
        if there is no row index)r   Úrow_index_strider   s    r   r-   zORCFile.row_index_stride^   s   € ð �{‰{×+Ñ+Ó-Ð-r   c                 ó6   — | j                   j                  «       S )zNumber of stripe statistics)r   Únstripe_statisticsr   s    r   r/   zORCFile.nstripe_statisticsd   ó   € ð �{‰{×-Ñ-Ó/Ð/r   c                 ó6   — | j                   j                  «       S )z/Length of the data stripes in the file in bytes)r   Úcontent_lengthr   s    r   r2   zORCFile.content_lengthi   r+   r   c                 ó6   — | j                   j                  «       S )z<The number of compressed bytes in the file stripe statistics)r   Ústripe_statistics_lengthr   s    r   r4   z ORCFile.stripe_statistics_lengthn   s   € ð �{‰{×3Ñ3Ó5Ð5r   c                 ó6   — | j                   j                  «       S )z1The number of compressed bytes in the file footer)r   Úfile_footer_lengthr   s    r   r6   zORCFile.file_footer_lengths   r0   r   c                 ó6   — | j                   j                  «       S )z*The number of bytes in the file postscript)r   Úfile_postscript_lengthr   s    r   r8   zORCFile.file_postscript_lengthx   s   € ð �{‰{×1Ñ1Ó3Ð3r   c                 ó6   — | j                   j                  «       S )zThe number of bytes in the file)r   Úfile_lengthr   s    r   r:   zORCFile.file_length}   r$   r   Nc                 ó  — |€y | j                   }g }|D ]q  }t        |t        «      r\t        |«      }d|cxk  rt	        |«      k  r$n n!||   j
                  }|j                  |«       ŒVt        dt	        |«      |fz  «      ‚|c S  |S )Nr   z/Column indices must be in 0 <= ind < %d, got %d)r   Ú
isinstancer   ÚintÚlenÚnameÚappendÚ
ValueError)r   Úcolumnsr   ÚnamesÚcols        r   Ú_select_nameszORCFile._select_names‚   sš   € Øˆ?Øà—‘ˆØˆØò 
	ˆCÜ˜#œxÔ(Ü˜#“h�Ø˜Ô)œc &›kÕ)Ø  ™+×*Ñ*�CØ—L‘L Õ%ä$ð &/Ü25°f³+¸sÐ1Cñ&Dó Eð Eð ’ð
	ð ˆr   c                 ó^   — | j                  |«      }| j                  j                  ||¬«      S )aÊ  Read a single stripe from the file.

        Parameters
        ----------
        n : int
            The stripe index
        columns : list
            If not None, only these columns will be read from the stripe. A
            column name may be a prefix of a nested field, e.g. 'a' will select
            'a.b', 'a.c', and 'a.d.e'

        Returns
        -------
        pyarrow.RecordBatch
            Content of the stripe as a RecordBatch.
        ©rB   )rE   r   Úread_stripe)r   ÚnrB   s      r   rH   zORCFile.read_stripe–   s.   € ð" ×$Ñ$ WÓ-ˆØ�{‰{×&Ñ& q°'Ð&Ó:Ð:r   c                 ó\   — | j                  |«      }| j                  j                  |¬«      S )aÖ  Read the whole file.

        Parameters
        ----------
        columns : list
            If not None, only these columns will be read from the file. A
            column name may be a prefix of a nested field, e.g. 'a' will select
            'a.b', 'a.c', and 'a.d.e'. Output always follows the
            ordering of the file and not the `columns` list.

        Returns
        -------
        pyarrow.Table
            Content of the file as a Table.
        rG   )rE   r   Úread)r   rB   s     r   rK   zORCFile.readª   s,   € ð  ×$Ñ$ WÓ-ˆØ�{‰{×Ñ¨ÐÓ0Ð0r   r	   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   r   r   r   r   r    r#   r&   r(   r*   r-   r/   r2   r4   r6   r8   r:   rE   rH   rK   © r   r   r   r      so  „ ñò!ð ñ&ó ð&ð ñ$ó ð$ð ñ#ó ð#ð ñ&ó ð&ð ñ*ó ð*ð ñ.ó ð.ð ñ)ó ð)ð ñ.ó ð.ð ñ$ó ð$ð ñ,ó ð,ð ñ.ó ð.ð
 ñ0ó ð0ð ñ,ó ð,ð ñ6ó ð6ð ñ0ó ð0ð ñ4ó ð4ð ñ)ó ð)óó(;ô(1r   r   a©  file_version : {"0.11", "0.12"}, default "0.12"
    Determine which ORC file version to use.
    `Hive 0.11 / ORC v0 <https://orc.apache.org/specification/ORCv0/>`_
    is the older version
    while `Hive 0.12 / ORC v1 <https://orc.apache.org/specification/ORCv1/>`_
    is the newer one.
batch_size : int, default 1024
    Number of rows the ORC writer writes at a time.
stripe_size : int, default 64 * 1024 * 1024
    Size of each ORC stripe in bytes.
compression : string, default 'uncompressed'
    The compression codec.
    Valid values: {'UNCOMPRESSED', 'SNAPPY', 'ZLIB', 'LZ4', 'ZSTD'}
    Note that LZ0 is currently not supported.
compression_block_size : int, default 64 * 1024
    Size of each compression block in bytes.
compression_strategy : string, default 'speed'
    The compression strategy i.e. speed vs size reduction.
    Valid values: {'SPEED', 'COMPRESSION'}
row_index_stride : int, default 10000
    The row index stride i.e. the number of rows per
    an entry in the row index.
padding_tolerance : double, default 0.0
    The padding tolerance.
dictionary_key_size_threshold : double, default 0.0
    The dictionary key size threshold. 0 to disable dictionary encoding.
    1 to always enable dictionary encoding.
bloom_filter_columns : None, set-like or list-like, default None
    Columns that use the bloom filter.
bloom_filter_fpp : double, default 0.05
    Upper limit of the false-positive rate of the bloom filter.
c                   óZ   — e Zd Zde› d�ZdZdddddd	d
dddddœd„Zd„ Zd„ Zd„ Z	d„ Z
d„ Zy)Ú	ORCWritera  
Writer interface for a single ORC file

Parameters
----------
where : str or pyarrow.io.NativeFile
    Writable target. For passing Python file objects or byte buffers,
    see pyarrow.io.PythonFileInterface, pyarrow.io.BufferOutputStream
    or pyarrow.io.FixedSizeBufferWriter.
ú
Fú0.12é   é   Úuncompressedé   Úspeedé'  ç        Nçš™™™™™©?©r   Ú
batch_sizeÚstripe_sizer#   Úcompression_block_sizeÚcompression_strategyr-   Úpadding_toleranceÚdictionary_key_size_thresholdÚbloom_filter_columnsÚbloom_filter_fppc                ó’   — t        j                  «       | _        | j                  j                  |||||||||	|
||¬«       d| _        y )Nr^   T)r
   rS   r(   r   Úis_open)r   Úwherer   r_   r`   r#   ra   rb   r-   rc   rd   re   rf   s                r   r   zORCWriter.__init__ï   sV   € ô —n‘nÓ&ˆŒØ�‰×ÑØØ%Ø!Ø#Ø#Ø#9Ø!5Ø-Ø/Ø*GØ!5Ø-ð 	ô 	
ð ˆ�r   c                 ó$   — | j                  «        y r	   ©Úcloser   s    r   Ú__del__zORCWriter.__del__  ó   € Ø�
‰
�r   c                 ó   — | S r	   rQ   r   s    r   Ú	__enter__zORCWriter.__enter__  s   € Øˆr   c                 ó$   — | j                  «        y r	   rk   )r   ÚargsÚkwargss      r   Ú__exit__zORCWriter.__exit__  rn   r   c                 óV   — | j                   sJ ‚| j                  j                  |«       y)a
  
        Write the table into an ORC file. The schema of the table must
        be equal to the schema used when opening the ORC file.

        Parameters
        ----------
        table : pyarrow.Table
            The table to be written into the ORC file
        N)rh   r(   Úwrite)r   Útables     r   rv   zORCWriter.write  s"   € ð �|Š|Ðˆ|Ø�‰×Ñ˜%Õ r   c                 ó`   — | j                   r"| j                  j                  «        d| _         yy)z$
        Close the ORC file
        FN)rh   r(   rl   r   s    r   rl   zORCWriter.close#  s'   € ð �<Š<Ø�K‰K×ÑÔØ ˆD�Lð r   )rL   rM   rN   Ú_orc_writer_args_docsrO   rh   r   rm   rp   rt   rv   rl   rQ   r   r   rS   rS   à   sc   „ ð	ð Ð ð ð
€Gð €Gð %Ø Ø-Ø+Ø(-Ø&-Ø"'Ø#&Ø/2Ø&*Ø"&ôò<òòò!ó!r   rS   c                 óô   — t        | |«      \  }}|�|j                  |«      } |�8t        |«      dk(  r*t        | «      j	                  «       j                  |«      }|S t        | «      j	                  |¬«      }|S )Nr   rG   )r   Úopen_input_filer>   r   rK   Úselect)r   rB   Ú
filesystemÚpathÚresults        r   Ú
read_tabler€   ,  s|   € Ü3°F¸JÓGÑ€J�ØÐØ×+Ñ+¨DÓ1ˆàÐœs 7›|¨qÒ0Ü˜“×%Ñ%Ó'×.Ñ.¨wÓ7ˆð €Mô ˜“×%Ñ%¨gÐ%Ó6ˆà€Mr   a˜  
Read a Table from an ORC file.

Parameters
----------
source : str, pyarrow.NativeFile, or file-like object
    If a string passed, can be a single file name. For file-like objects,
    only read a single file. Use pyarrow.BufferReader to read a file
    contained in a bytes or buffer-like object.
columns : list
    If not None, only these columns will be read from the file. A column
    name may be a prefix of a nested field, e.g. 'a' will select 'a.b',
    'a.c', and 'a.d.e'. Output always follows the ordering of the file and
    not the `columns` list. If empty, no columns will be read. Note
    that the table will still have the correct num_rows set despite having
    no columns.
filesystem : FileSystem, default None
    If nothing passed, will be inferred based on path.
    Path will try to be found in the local on-disk filesystem otherwise
    it will be parsed as an URI to determine the filesystem.
rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   c                óÞ   — t        |t        «      r t        j                  dt        d¬«       || }} t        |||||||||	|
||¬«      5 }|j                  | «       d d d «       y # 1 sw Y   y xY w)Nz…The order of the arguments has changed. Pass as 'write_table(table, where)' instead. The old order will raise an error in the future.é   )Ú
stacklevelr^   )r<   r   ÚwarningsÚwarnÚFutureWarningrS   rv   )rw   ri   r   r_   r`   r#   ra   rb   r-   rc   rd   re   rf   r(   s                 r   Úwrite_tabler‡   P  s�   € ô �%œÔÜ�‰ð&ä'4Àõ	
ð
 ˜eˆuˆÜ	ØØ!ØØØØ5Ø1Ø)Ø+Ø&CØ1Ø)ô
ð ð 
Ø�‰�UÔ÷÷ ñ ús   ÁA#Á#A,aZ  
Write a table into an ORC file.

Parameters
----------
table : pyarrow.lib.Table
    The table to be written into the ORC file
where : str or pyarrow.io.NativeFile
    Writable target. For passing Python file objects or byte buffers,
    see pyarrow.io.PythonFileInterface, pyarrow.io.BufferOutputStream
    or pyarrow.io.FixedSizeBufferWriter.
rT   )NN)Únumbersr   r„   Úpyarrow.libr   Úpyarrow._orcr
   Ú
pyarrow.fsr   r   ry   rS   r€   rO   r‡   rQ   r   r   ú<module>rŒ      s�   ðõ& Û å Ý Ý 3÷`1ñ `1ðFÐ ÷DI!ñ I!óX
ð€
Ô ð0 $ØØ,Ø*Ø',Ø%,Ø!&Ø"%Ø.1Ø%)Ø!%ô!ðHð Ð ð ð€Õ r   