
    /_i%                        d dl Z d dlZd dlmZmZmZmZmZm	Z	m
Z
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  G d dej,                        ZdZedz   dz   Z G d d	ej4                        Z G d
 dej8                        Z G d dej<                        Zd Z d Z!dddZ"de de"_#        ddddZ$ddddZ%de de%_#        d ddddZ&ddddZ'dddZ(y)!    N)IpcReadOptionsIpcWriteOptions	ReadStats
WriteStatsMessageMessageReaderRecordBatchReader_ReadPandasMixinMetadataVersion	Alignmentread_messageread_record_batchread_schemaread_tensorwrite_tensorget_record_batch_sizeget_tensor_sizec                       e Zd ZdZddddZy)RecordBatchStreamReadera  
    Reader for the Arrow streaming binary format.

    Parameters
    ----------
    source : bytes/buffer-like, pyarrow.NativeFile, or file-like Python object
        Either an in-memory buffer, or a readable file object.
        If you want to use memory map use MemoryMappedFile as source.
    options : pyarrow.ipc.IpcReadOptions
        Options for IPC deserialization.
        If None, default values will be used.
    memory_pool : MemoryPool, default None
        If None, default memory pool is used.
    Noptionsmemory_poolc                B    t        |      }| j                  |||       y )Nr    _ensure_default_ipc_read_options_open)selfsourcer   r   s       J/var/www/html/land_sniper/venv/lib/python3.12/site-packages/pyarrow/ipc.py__init__z RecordBatchStreamReader.__init__2   s    27;

67
D    __name__
__module____qualname____doc__r     r!   r   r   r   "   s     +/D Er!   r   aO  Parameters
----------
sink : str, pyarrow.NativeFile, or file-like Python object
    Either a file path, or a writable file object.
schema : pyarrow.Schema
    The Arrow schema for data to be written to the file.
options : pyarrow.ipc.IpcWriteOptions
    Options for IPC serialization.

    If None, default values will be used: the legacy format will not
    be used unless overridden by setting the environment variable
    ARROW_PRE_0_15_IPC_FORMAT=1, and the V5 metadata version will be
    used unless overridden by setting the environment variable
    ARROW_PRE_1_0_METADATA_VERSION=1.
zmetadata : dict | pyarrow.KeyValueMetadata, optional
    Key/value pairs (both must be bytes-like) that will be stored
    in the file footer and are retrievable via
    pyarrow.ipc.open_file(...).metadata.c                   "    e Zd Zde ZdddZy)RecordBatchStreamWriterz.Writer for the Arrow streaming binary format

Nr   c                B    t        |      }| j                  |||       y Nr+   _get_legacy_format_defaultr   )r   sinkschemar   s       r   r    z RecordBatchStreamWriter.__init__X   s    ,W5

4
1r!   )r#   r$   r%   _ipc_writer_class_docr&   r    r'   r!   r   r*   r*   S   s     G 15 2r!   r*   c                        e Zd ZdZdddddZy)RecordBatchFileReadera  
    Class for reading Arrow record batch data from the Arrow binary file format

    Parameters
    ----------
    source : bytes/buffer-like, pyarrow.NativeFile, or file-like Python object
        Either an in-memory buffer, or a readable file object.
        If you want to use memory map use MemoryMappedFile as source.
    footer_offset : int, default None
        If the file is embedded in some larger file, this is the byte offset to
        the very end of the file data
    options : pyarrow.ipc.IpcReadOptions
        Options for IPC serialization.
        If None, default values will be used.
    memory_pool : MemoryPool, default None
        If None, default memory pool is used.
    Nr   c                D    t        |      }| j                  ||||       y )Nfooter_offsetr   r   r   )r   r   r7   r   r   s        r   r    zRecordBatchFileReader.__init__p   s&    27;

6" 	 	=r!   Nr"   r'   r!   r   r4   r4   ]   s    $=d!=r!   r4   c                   $    e Zd Zde ZddddZy)RecordBatchFileWriterz/Writer to create the Arrow binary file format

Nr   metadatac                D    t        |      }| j                  ||||       y Nr;   r.   )r   r0   r1   r   r<   s        r   r    zRecordBatchFileWriter.__init__}   s     ,W5

48
Dr!   )r#   r$   r%   _ipc_file_writer_class_docr&   r    r'   r!   r   r:   r:   w   s!      G 15t Er!   r:   c                 z   | r)t        | t              st        dt        |              | S t        j
                  }t        t        t        j                  j                  dd                  }t        t        t        j                  j                  dd                  rt        j                  }t        ||      S )Nzexpected IpcWriteOptions, got ARROW_PRE_0_15_IPC_FORMAT0ARROW_PRE_1_0_METADATA_VERSION)use_legacy_formatmetadata_version)
isinstancer   	TypeErrortyper   V5boolintosenvirongetV4)r   rE   rD   s      r   r/   r/      s    '?3<T']OLMM&))S ;SABC C

?EFG*--->,<> >r!   c                 p    | r't        | t              st        dt        |              | xs
 t               S )Nzexpected IpcReadOptions, got )rF   r   rG   rH   r+   s    r   r   r      s3    z'>:7WGHH&n&&r!   r+   c                    t        | ||      S r-   )r*   )r0   r1   r   s      r   
new_streamrR      s    "4+24 4r!   z5Create an Arrow columnar IPC stream writer instance

zS

Returns
-------
writer : RecordBatchStreamWriter
    A writer for the given sink
r   c                    t        | ||      S )a  
    Create reader for Arrow streaming format.

    Parameters
    ----------
    source : bytes/buffer-like, pyarrow.NativeFile, or file-like Python object
        Either an in-memory buffer, or a readable file object.
    options : pyarrow.ipc.IpcReadOptions
        Options for IPC serialization.
        If None, default values will be used.
    memory_pool : MemoryPool, default None
        If None, default memory pool is used.

    Returns
    -------
    reader : RecordBatchStreamReader
        A reader for the given source
    r   )r   )r   r   r   s      r   open_streamrT      s    & #67/:< <r!   r;   c                     t        | |||      S r>   )r:   )r0   r1   r   r<   s       r   new_filerV      s     vwRRr!   z3Create an Arrow columnar IPC file writer instance

zQ

Returns
-------
writer : RecordBatchFileWriter
    A writer for the given sink
c                     t        | |||      S )a  
    Create reader for Arrow file format.

    Parameters
    ----------
    source : bytes/buffer-like, pyarrow.NativeFile, or file-like Python object
        Either an in-memory buffer, or a readable file object.
    footer_offset : int, default None
        If the file is embedded in some larger file, this is the byte offset to
        the very end of the file data.
    options : pyarrow.ipc.IpcReadOptions
        Options for IPC serialization.
        If None, default values will be used.
    memory_pool : MemoryPool, default None
        If None, default memory pool is used.

    Returns
    -------
    reader : RecordBatchFileReader
        A reader for the given source
    r6   )r4   )r   r7   r   r   s       r   	open_filerX      s    , !m[2 2r!   nthreadspreserve_indexc                8   t         j                  j                  | ||      }t        j                         }t        j                  ||j
                        5 }|j                  |       ddd       |j                         S # 1 sw Y   |j                         S xY w)a  
    Serialize a pandas DataFrame into a buffer protocol compatible object.

    Parameters
    ----------
    df : pandas.DataFrame
    nthreads : int, default None
        Number of threads to use for conversion to Arrow, default all CPUs.
    preserve_index : bool, default None
        The default of None will store the index as a column, except for
        RangeIndex which is stored as metadata only. If True, always
        preserve the pandas index data as a column. If False, no index
        information is saved and the result will have a default RangeIndex.

    Returns
    -------
    buf : buffer
        An object compatible with the buffer protocol.
    rY   N)paRecordBatchfrom_pandasBufferOutputStreamr*   r1   write_batchgetvalue)dfrZ   r[   batchr0   writers         r   serialize_pandasrf      s    ( NN&&rH6D ' FE  "D		#	#D%,,	7 "65!"==?"==?s   BBTuse_threadsc                    t        j                  |       }t        j                  |      5 }|j                         }ddd       j	                  |      S # 1 sw Y   xY w)a  Deserialize a buffer protocol compatible object into a pandas DataFrame.

    Parameters
    ----------
    buf : buffer
        An object compatible with the buffer protocol.
    use_threads : bool, default True
        Whether to parallelize the conversion using multiple threads.

    Returns
    -------
    df : pandas.DataFrame
        The buffer deserialized as pandas DataFrame
    Nrg   )r]   BufferReaderr   read_all	to_pandas)bufrh   buffer_readerreadertables        r   deserialize_pandasrq     sT     OOC(M		#	#M	2 "f!"??{?33" "s   AAr8   ))rL   pyarrowr]   pyarrow.libr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   lib_RecordBatchStreamReaderr   r2   r?   _RecordBatchStreamWriterr*   _RecordBatchFileReaderr4   _RecordBatchFileWriterr:   r/   r   rR   r&   rT   rV   rX   rf   rq   r'   r!   r   <module>ry      s)  ( 
 A A A A A Ec:: E*) $ 
,, 2c:: 2=C66 =4EC66 E>' )- 4
   	
  $(T <. '+T S   	 2Tt 26 &*$ 8 ,0 4r!   