
    g;                        d dl Z d dlZd dlZd dlZd dlZd dlmZ d Zej                  j                  d      d        Zd Zd Zej                  j                  d        Zd	 Zd
 Zej                  j                  d        Zej                  j                  ej&                  dk(  d      d        Zej                  j+                  dg ej,                  ej.                  ej0                  ej2                  ej4                  ej6                  ej8                  ej:                  ej<                  ej>                  ej@                  ejB                  ejD                  ejF                  ejH                  ejJ                  ejL                  ejN                  ejP                  ejR                  ejT                  ejV                  ejX                  ejZ                  ej\                  ej^                  ej`                  ejb                  ejd                  ejf                  ejh                  ejj                  ejl                  ejn                  ejp                  ejr                  ejt                  ejv                  ejx                  ejz                  ej|                  ej~                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  j                  ej                  j                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  ej                   ej                  ej                  ej                        d        Zy)    N)ArrowInvalidc                      t        j                         } t        j                  j	                  t        j                  j                  | dd            sJ y )Narrowzapi.h)paget_includeospathexistsjoin)include_dirs    L/var/www/openai/venv/lib/python3.12/site-packages/pyarrow/tests/test_misc.pytest_get_includer      s5    .."K77>>"'',,{GWEFFF    zsys.platform != "win32"c                  P    t        d t        j                         D              sJ y )Nc              3      K   | ]A  }t         j                  j                  t         j                  j                  |d              C yw)z	arrow.libN)r   r	   r
   r   ).0	directorys     r   	<genexpr>z.test_get_library_dirs_win32.<locals>.<genexpr>#   s4      7 59 ww~~bggll9kBC 5s   AA	)anyr   get_library_dirs r   r   test_get_library_dirs_win32r   !   s*     7 " 3 3 57 7 7 7r   c                     t        j                         } | dkD  sJ 	 t        j                  | dz          t        j                         | dz   k(  sJ 	 t        j                  |        y # t        j                  |        w xY wNr      )r   	cpu_countset_cpu_countns    r   test_cpu_countr    '   sd    
Aq5L5
Q||~Q&&&
   4A( (A?c                     t        j                         } | dkD  sJ 	 t        j                  | dz          t        j                         | dz   k(  sJ 	 t        j                  |        y # t        j                  |        w xY wr   )r   io_thread_countset_io_thread_countr   s    r   test_io_thread_countr%   1   sj    
Aq5L5"
q1u%!!#q1u,,,
q!q!r!   c                      dfd}  | d      \  }}|j                         dk(  sJ |dk(  sJ dD ]6  } | |      \  }}|j                         dk(  sJ d|j                         v r6J  y )NzOif 1:
        import pyarrow as pa
        print(pa.io_thread_count())
        c                 $   t         j                  j                         }| |d<   t        j                  t
        j                  dg|d      }|j                          |j                  j                         |j                  j                         fS )NARROW_IO_THREADS-cT)envcapture_output)r   environcopy
subprocessrunsys
executablecheck_returncodestdoutdecodestderr)env_varr*   rescodes      r   run_with_env_varz6test_env_var_io_thread_count.<locals>.run_with_env_varD   so    jjoo")nncnndD9s,02zz  "CJJ$5$5$777r   17 )z-1z8z;ARROW_IO_THREADS does not contain a valid number of threads)strip)r9   outerrvr8   s       @r   test_env_var_io_thread_countrB   ;   s    D
8  %HC99;$"99#A&Syy{c!!!M99; 	   r   c                     t        t        j                  t        j                        sJ t        t        j                  t        j
                        sJ t        t        j                  t              sJ t        t        j                  t              sJ t        j                  j                  t        j                  k(  sJ t        j                  j                  dv sJ y )N)debugrelease
minsizerelrelwithdebinfo)
isinstancer   cpp_build_info	BuildInfocpp_version_infoVersionInfocpp_versionstr__version__version_info
build_typer   r   r   test_build_inforR   W   s    b''666b))2>>:::bnnc***bnnc***))R-@-@@@@'' ,< < < <r   c                  ~   t        j                         } t        | t         j                        sJ d}| j                  |v sJ | j
                  |v sJ | j                  dk7  r\t        j                  j                         }d|d<   d| j
                  d}t        j                  t        j                  d|g|       y y )N)nonesse4_2avxavx2avx512rT   ARROW_USER_SIMD_LEVELzif 1:
            import pyarrow as pa

            info = pa.runtime_info()
            assert info.simd_level == 'none', info.simd_level
            assert info.detected_simd_level == z6,                info.detected_simd_level
            r)   )r*   )r   runtime_inforH   RuntimeInfo
simd_leveldetected_simd_levelr   r,   r-   r.   
check_callr0   r1   )infopossible_simd_levelsr*   r8   s       r   test_runtime_infora   d   s    ??DdBNN+++F??2222##';;;;& jjoo'-#$0
 150H0H/K L 	s~~tT:D !r   c                  T    d} t        j                  t        j                  d| g       y )Nzif 1:
        import atexit

        def import_arrow():
            import pyarrow

        atexit.register(import_arrow)
        r)   )r.   r^   r0   r1   )r8   s    r   test_import_at_shutdownrc   y   s$    D 3>>467r   win32zFPath to timezone database is not configurable on non-Windows platforms)reasonc                      t        j                  t        d      5  t        j                  d       d d d        y # 1 sw Y   y xY w)Nz9Arrow was set to use OS timezone database at compile timematchr	   )pytestraisesr   r   set_timezone_db_pathr   r   r   %test_set_timezone_db_path_non_windowsrl      s7    
 
|8
9 	'
9 
9 
9s	   ;Aklassc                     d}t        j                  t        |j                  | j                              5   |         d d d        y # 1 sw Y   y xY w)Nz9Do not call {cls}'s constructor directly, use .* instead.)clsrg   )ri   rj   	TypeErrorformat__name__)rm   msgs     r   &test_extension_type_constructor_errorsrt      s:    b FC	y

u~~
(F	G 
H	G	Gs   A		A)r   r.   r0   ri   pyarrowr   pyarrow.libr   r   markskipifr   r    r%   	processesrB   rR   ra   rc   platformrl   parametrizeFieldSchemaChunkedArrayRecordBatchTableBufferArrayTensorDataTypeListTypeLargeListTypeFixedSizeListTypeListViewTypeLargeListViewType	UnionTypeSparseUnionTypeDenseUnionType
StructType
Time32Type
Time64TypeTimestampTypeDecimal128TypeDecimal256TypeDictionaryTypeFixedSizeBinaryType	NullArrayNumericArrayIntegerArrayFloatingPointArrayBooleanArray	Int8Array
Int16Array
Int32Array
Int64Array
UInt8ArrayUInt16ArrayUInt32ArrayUInt64Array	ListArrayLargeListArrayMapArrayFixedSizeListArray
UnionArrayBinaryArrayStringArrayBinaryViewArrayStringViewArrayFixedSizeBinaryArrayDictionaryArrayDate32ArrayDate64ArrayTimestampArrayTime32ArrayTime64ArrayDurationArrayDecimal128ArrayDecimal256ArrayStructArrayRunEndEncodedArrayScalarBooleanScalar
Int8ScalarInt16ScalarInt32ScalarInt64ScalarUInt8ScalarUInt16ScalarUInt32ScalarUInt64ScalarHalfFloatScalarFloatScalarDoubleScalarDecimal128ScalarDecimal256ScalarDate32ScalarDate64ScalarTime32ScalarTime64ScalarTimestampScalarDurationScalarStringScalarBinaryScalarFixedSizeBinaryScalarBinaryViewScalarStringViewScalar
ListScalarLargeListScalarListViewScalarLargeListViewScalar	MapScalarFixedSizeListScalarUnionScalarStructScalarDictionaryScalarRunEndEncodedScalarRecordBatchReaderipcMessageMessageReader
MemoryPoolLoggingMemoryPoolProxyMemoryPoolDeviceMemoryManagerOpaqueArrayOpaqueScalar
OpaqueType
Bool8ArrayBool8Scalar	Bool8Typert   r   r   r   <module>r      sS  $ 
  
   $G
 -.7 /7
"    6<E* 
8 
8 CLLG+6  7(7(  n#HHn#IIn# OOn# NN	n#
 HHn# IIn# HHn# IIn# KKn# KKn# n# n# OOn# n# LLn#  !n#" #n#$ MM%n#& MM'n#( MM)n#* +n#, -n#. /n#0 1n#2 3n#4 LL5n#6 OO7n#8 OO9n#: ;n#< OO=n#> LL?n#@ MMAn#B MMCn#D MMEn#F MMGn#H NNIn#J NNKn#L NNMn#N LLOn#P Qn#R KKSn#T Un#V MMWn#X NNYn#Z NN[n#\ ]n#^ _n#` an#b cn#d NNen#f NNgn#h in#j NNkn#l NNmn#n on#p qn#r sn#t NNun#v wn#x IIyn#z {n#| MM}n#~ NNn#@ NNAn#B NNCn#D NNEn#F OOGn#H OOIn#J OOKn#L Mn#N NNOn#P OOQn#R Sn#T Un#V OOWn#X OOYn#Z OO[n#\ OO]n#^ _n#` an#b OOcn#d OOen#f gn#h in#j kn#l MMmn#n on#p qn#r sn#t LLun#v wn#x NNyn#z OO{n#| }n#~ n#@ An#B FFNNCn#D FFEn#F MMGn#H In#J Kn#L IIMn#N On#P NNQn#R OOSn#T MMUn#V MMWn#X NNYn#Z LL[n# n^_n^r   