o
    Zh;H                     @   s  d Z ddlZddlZddlZddlZddl	Z
ddlZzddlmZ W n& eyH   zddlZdd ZejdedZW n eyE   dZY nw Y nw e Ze  ddlmZ er]e  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( d
d Z)dd Z*dd Z+dd Z,ddlm-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZ ddlmZmZm Z mZmZmZmZ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mZ ddlmZ ddlmZmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ e  Z!dZ"dZ#e!dfed fedfed!fd"Z$d#d$ Z%dd%l&m'Z'm(Z( dd&lm)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d'd( Z0d)d* Z1d+d, Z2d-d. Z3d/d0 Z4d1d2 Z5d3d4 Z6dS )5a  
PyArrow is the python implementation of Apache Arrow.

Apache Arrow is a cross-language development platform for in-memory data.
It specifies a standardized language-independent columnar memory format for
flat and hierarchical data, organized for efficient analytic operations on
modern hardware. It also provides computational libraries and zero-copy
streaming messaging and interprocess communication.

For more information see the official page at https://arrow.apache.org
    N   )versionc                 K   s$   ddl m} d|d< || fi |S )z
            Parse function for setuptools_scm that ignores tags for non-C++
            subprojects, e.g. apache-arrow-js-XXX tags.
            r   parsezBgit describe --dirty --tags --long --match 'apache-arrow-[0-9]*.*'Zdescribe_command)Zsetuptools_scm.gitr   )rootkwargsr    r   G/var/www/html/lang_env/lib/python3.10/site-packages/pyarrow/__init__.py	parse_git/   s   r
   z../r   )	BuildInfoRuntimeInfoset_timezone_db_pathMonthDayNanoVersionInfocpp_build_infocpp_versioncpp_version_inforuntime_info	cpu_countset_cpu_countenable_signal_handlersio_thread_countset_io_thread_countc                  C   s   dd } t d | dttjdkrtjnd | dtj | dtj d	tj  | d
tj | dtj | dtj	 | dtj
 dS )zJ
    Print various version information, to help with error reporting.
    c                 S   s   t | dd|d d S )Nz <26:  <8printlabelvaluer   r   r	   print_entryP      z"show_versions.<locals>.print_entryz)pyarrow version info
--------------------zPackage kindr   znot indicatedzArrow C++ library versionzArrow C++ compiler zArrow C++ compiler flagszArrow C++ git revisionzArrow C++ git descriptionzArrow C++ build typeN)r   lenr   Zpackage_kindr   Zcompiler_idZcompiler_versionZcompiler_flagsZgit_idZgit_descriptionZ
build_type)r    r   r   r	   show_versionsL   s   r$   c                 C   s,   zt d|   W dS  ty   Y dS w )Nzpyarrow.FT)
_importlibimport_moduleImportError)moduler   r   r	   _module_is_available`   s   r)   c              	   C   sN   zdd l }W n
 ty   Y dS w z	t|j|  W dS  ttfy&   Y dS w )Nr   FT)Z
pyarrow.fsr'   getattrfsAttributeError)r+   Zpyarrowr   r   r	   _filesystem_is_availablei   s   r-   c            	      C   sn  t   dd } td | dt  dt   | dt j | dt j t }td | d	|j	 | d
|
  d | d|  d | ddt  td g d}|D ]}t|rcdnd}td|dd|d q[td g d}|D ]}t|rdnd}td|dd|d q|td g d}|D ]}t|rdnd}td|dd|d qdS )zN
    Print detailed version and platform information, for error reporting
    c                 S   s   t d| dd|d d S )N   <20r   r   r   r   r   r   r	   r    }   s   zshow_info.<locals>.print_entryz

Platform:z	OS / Archr"   z
SIMD LevelzDetected SIMD Levelz
Memory:zDefault backendzBytes allocatedz bytesz
Max memoryzSupported Backendsz, z
Optional modules:)
csvcudaZdatasetZfeatherZflightr+   ZgandivajsonZorcZparquetZEnabled-r.   r/   r   r   z
Filesystems:)ZGcsFileSystemHadoopFileSystemZS3FileSystemz
Compression Codecs:)brotlibz2gzipZ	lz4_frameZlz4ZsnappyZzstdN)r$   r   	_platformsystemmachiner   Z
simd_levelZdetected_simd_leveldefault_memory_poolbackend_nameZbytes_allocatedZ
max_memoryjoinsupported_memory_backendsr)   r-   CodecZis_available)	r    poolmodulesr(   statusZfilesystemsr+   codecscodecr   r   r	   	show_infow   s8   rE   )nullbool_int8int16int32int64uint8uint16uint32uint64time32time64	timestampdate32date64durationmonth_day_nano_intervalfloat16float32float64binarystringutf8large_binarylarge_string
large_utf8
decimal128
decimal256list_
large_listmap_structunionsparse_uniondense_union
dictionaryrun_end_encodedfixed_shape_tensorfieldtype_for_aliasDataTypeDictionaryType
StructTypeListTypeLargeListTypeMapTypeFixedSizeListType	UnionTypeSparseUnionTypeDenseUnionTypeTimestampType
Time32Type
Time64TypeDurationTypeFixedSizeBinaryTypeDecimal128TypeDecimal256TypeBaseExtensionTypeExtensionTypeRunEndEncodedTypeFixedShapeTensorTypePyExtensionTypeUnknownExtensionTyperegister_extension_typeunregister_extension_typeDictionaryMemoKeyValueMetadataFieldSchemaschemaunify_schemasArrayTensorarraychunked_arrayrecord_batchnullsrepeatSparseCOOTensorSparseCSRMatrixSparseCSCMatrixSparseCSFTensor
infer_typefrom_numpy_dtype	NullArrayNumericArrayIntegerArrayFloatingPointArrayBooleanArray	Int8Array
UInt8Array
Int16ArrayUInt16Array
Int32ArrayUInt32Array
Int64ArrayUInt64ArrayHalfFloatArray
FloatArrayDoubleArray	ListArrayLargeListArrayMapArrayFixedSizeListArray
UnionArrayBinaryArrayStringArrayLargeBinaryArrayLargeStringArrayFixedSizeBinaryArrayDictionaryArrayDate32ArrayDate64ArrayTimestampArrayTime32ArrayTime64ArrayDurationArrayMonthDayNanoIntervalArrayDecimal128ArrayDecimal256ArrayStructArrayExtensionArrayRunEndEncodedArrayFixedShapeTensorArrayscalarNA_NULLScalar
NullScalarBooleanScalar
Int8ScalarInt16ScalarInt32ScalarInt64ScalarUInt8ScalarUInt16ScalarUInt32ScalarUInt64ScalarHalfFloatScalarFloatScalarDoubleScalarDecimal128ScalarDecimal256Scalar
ListScalarLargeListScalarFixedSizeListScalarDate32ScalarDate64ScalarTime32ScalarTime64ScalarTimestampScalarDurationScalarMonthDayNanoIntervalScalarBinaryScalarLargeBinaryScalarStringScalarLargeStringScalarFixedSizeBinaryScalarDictionaryScalar	MapScalarStructScalarUnionScalarRunEndEncodedScalarExtensionScalar)BufferResizableBufferforeign_buffer	py_bufferr?   compress
decompressallocate_buffer)
MemoryPoolLoggingMemoryPoolProxyMemoryPooltotal_allocated_bytesset_memory_poolr;   system_memory_pooljemalloc_memory_poolmimalloc_memory_poollogging_memory_poolproxy_memory_poollog_memory_allocationsjemalloc_set_decay_msr>   )
NativeFile
PythonFileBufferedInputStreamBufferedOutputStreamCacheOptionsCompressedInputStreamCompressedOutputStreamTransformInputStreamtranscoding_input_streamFixedSizeBufferWriterBufferReaderBufferOutputStreamOSFileMemoryMappedFile
memory_mapcreate_memory_mapMockOutputStreaminput_streamoutput_stream)HdfsFilehave_libhdfs)ChunkedArrayRecordBatchTabletableconcat_arraysconcat_tablesTableGroupByRecordBatchReader)ArrowCancelledArrowCapacityErrorArrowExceptionArrowKeyErrorArrowIndexErrorArrowInvalidArrowIOErrorArrowMemoryErrorArrowNotImplementedErrorArrowTypeErrorArrowSerializationError)serialize_pandasdeserialize_pandas)
FileSystem)LocalFileSystem)r4   zIpyarrow.{0} is deprecated as of 2.0.0, please use pyarrow.fs.{1} instead.zy'pyarrow.{0}' is deprecated and will be removed in a future version. Use pickle or the pyarrow IPC functionality instead.r(  r'  r4   )Zlocalfsr'  r(  r4   c                 C   s>   | t v rt |  \}}tjt| |tdd |S td| )N   )
stacklevelz'module 'pyarrow' has no attribute '{0}')_deprecated	_warningswarn_msgformatFutureWarningr,   )nameobjnew_namer   r   r	   __getattr__6  s   r4  )_deprecate_api_deprecate_class)MessageMessageReaderMetadataVersionRecordBatchFileReaderRecordBatchFileWriterRecordBatchStreamReaderRecordBatchStreamWriterc                   C   s   t jt jtdS )zr
    Return absolute path to directory containing Arrow C++ include
    headers. Similar to numpy.get_include
    include)_ospathr=   dirname__file__r   r   r   r	   get_includeR  s   rC  c                   C   s   t jddS )N
PKG_CONFIG
pkg-config)r?  environgetr   r   r   r	   _get_pkg_config_executableZ  s   rH  c                 C   s6   dd l }z|t d| gdkW S  ty   Y dS w )Nr   z--existsF)
subprocesscallrH  FileNotFoundError)pkgnamerI  r   r   r	   _has_pkg_config^  s   rM  c                 C   s`   dd l }t | g| }|j||j|jd}| \}}|jdkr)td|d | dS )Nr   )stdoutstderrzpkg-config failed: r\   )	rI  rH  PopenPIPEcommunicate
returncodeRuntimeErrordecoderstrip)rL  Zcli_argsrI  cmdprocouterrr   r   r	   _read_pkg_config_variableg  s   

r[  c                   C   s   ddgS )zz
    Return list of library names to include in the `libraries` argument for C
    or Cython extensions using pyarrow
    arrow_pythonarrowr   r   r   r   r	   get_librariesr  s   r^  c               	   C   s   ddl } tjdkrdS tjt}tjdkr%|  tj|d}dd }n|  tj|d}d	d }|D ]"}||}tj|rBq5zt	|| W q5 t
yW   td
 Y q5w dS )a#  
    With Linux and macOS wheels, the bundled shared libraries have an embedded
    ABI version like libarrow.so.17 or libarrow.17.dylib and so linking to them
    with -larrow won't work unless we create symlinks at locations like
    site-packages/pyarrow/libarrow.so. This unfortunate workaround addresses
    prior problems we had with shipping two copies of the shared libraries to
    permit third party projects like turbodbc to build their C++ extensions
    against the pyarrow wheels.

    This function must only be invoked once and only when the shared libraries
    are bundled with the Python package, which should only apply to wheel-based
    installs. It requires write access to the site-packages/pyarrow directory
    and so depending on your system may need to be run with root.
    r   Nwin32linuxz*.so.*c                 S   s   |  ddd S )N.r   r   )rsplitZ	hard_pathr   r   r	   get_symlink_path  s   z1create_library_symlinks.<locals>.get_symlink_pathz	*.*.dylibc                 S   s   d | ddd dfS )Nra  r)  r   Zdylib)r=   rb  rc  r   r   r	   rd    r!   zyTried creating symlink {}. If you need to link to bundled shared libraries, run pyarrow.create_library_symlinks() as root)glob_sysplatformr?  r@  rA  rB  r=   existssymlinkPermissionErrorr   )re  package_cwdZbundled_libsrd  Zlib_hard_pathZsymlink_pathr   r   r	   create_library_symlinksz  s&   


rl  c                     s  t jt} | g  fdd}t jdpd}dD ]"}t|r;t|dg}|r;|ds3t	d
|||d	d
  qtjdkr_t jtj}t j|dd}t jt j|dr_|| t jdrs|t jt jd d  S |t jt jt  S )z
    Return lists of directories likely to contain Arrow C++ libraries for
    linking C or Cython extensions using pyarrow
    c                    s   |  vr  |  d S d S )N)append)library_dirZlibrary_dirsr   r	   append_library_dir  s   z,get_library_dirs.<locals>.append_library_dirrD  rE  )r]  r\  z--libs-only-Lz-Lz7pkg-config --libs-only-L returned unexpected value {!r}r)  Nr_  Librarylibz	arrow.libZ
ARROW_HOME)r?  r@  rA  rB  rF  rG  rM  r[  
startswith
ValueErrorr/  rf  rg  
executabler=   rh  abspath)rk  rp  Zpkg_config_executablerL  rn  Zpython_base_installr   ro  r	   get_library_dirs  s6   

rw  (7  __doc__gcZ_gc	importlibr%   osr?  rg  r8   sysrf  warningsr,  Z_generated_versionr   __version__r'   Zsetuptools_scmr
   get_version	isenabledZ_gc_enableddisableZpyarrow.librr  Z_libenabler   r   r   r   r   r   r   r   r   r   r   r   r   r   r$   r)   r-   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ZNULLr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   r   r   r   r   r   r   r   r   r;   r   r   r   r   r   r   r   r>   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  Zpyarrow._hdfsior  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  Zpyarrow.hdfsZhdfsZpyarrow.ipcr%  r&  ZipcZpyarrow.typestypesZpyarrow.filesystemr'  Z_FileSystemr(  Z_LocalFileSystemr4   Z_HadoopFileSystemZ_get_instanceZ_localfsr.  Z_serialization_msgr+  r4  Zpyarrow.utilr5  r6  r7  r8  r9  r:  r;  r<  r=  rC  rH  rM  r[  r^  rl  rw  r   r   r   r	   <module>   s   	
@	)  (I@T	
@`
B
	


	

+