
    z-Ph)                     `   d dl 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d dlZd dl	Z
ddlmZmZ d dlmZ d dlmZ e
j                            dd           e
j                            d	d
           e
j                            dde
j        j                   e
j                            ej                            dd	                     dej        d<   ej        dk    r(ej                            dd          Zer ee           ej        dk    rjej                            dd          Od dlmZ 	 ej                             ej        d          d          ej        d<   n# e $ r  e!d           Y nw xY wd Z" G d d          Z#d Z$d Z%ej&        d             Z' ej&        d          d              Z( ej&        d!"          d#             Z) ej&        d          d$             Z* ej&        d          d%             Z+d3d)Z, ej&        d          d*             Z- ej&        d          d+             Z. ej&        d          d,             Z/ ej&        d-d.gd/          d0             Z0 ej&        d          d1             Z1 ej&        d          d2             Z2dS )4    N   )groupsdefaults)set_timezone_db_pathfind_free_portcii  )max_examplesdev2   debug
   )r
   	verbosityHYPOTHESIS_PROFILEz	/dev/nullAWS_CONFIG_FILEwin32PYARROW_TZDATA_PATHTZDIR)	resourcestzdatazoneinfozCPackage "tzdata" not found. Not setting TZDIR environment variable.c           	      r   d
d}t           D ]} |d                    |          t          |                   }|                     d                    |          d|d                    |                     |                     d                    |          ddd	                    |                     d S )Nc                    t           j                            |                                           }|s|S |                                }|dv rdS |dv rdS t          d                    |                                 |                    )N>   1yonyestrueT>   0nnoofffalseFz {}={} is not parsable as boolean)osenvirongetupperlower
ValueErrorformat)namedefaultvalues      V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyarrow/tests/conftest.pybool_envz"pytest_addoption.<locals>.bool_envL   s    
tzz||,, 	N33346665?$fTZZ\\599; ; ;    zPYARROW_TEST_{}--enable-{}
store_truezEnable the {} test group)actionr,   help--disable-{}FzDisable the {} test groupN)r   r*   r   	addoption)parserr/   groupr,   s       r.   pytest_addoptionr:   J   s    ; ; ; ;  K K(,33E::HUOLL--e44 ,g9@@GG 	 	J 	J 	J 	..u55 ,e:AA%HH 	 	K 	K 	K 	KK Kr0   c                        e Zd Zd Zd Zd ZdS )PyArrowConfigc                     i | _         d S r6   )
is_enabled)selfs    r.   __init__zPyArrowConfig.__init__d   s    r0   c                 T    |j         }|t          v r|                     |           d S d S r6   )r+   r   requires)r?   markr9   s      r.   
apply_markzPyArrowConfig.apply_markg   s1    	F??MM%      ?r0   c                 r    | j         |         s)t          j        d                    |                     d S d S )Nz{} NOT enabled)r>   pytestskipr*   )r?   r9   s     r.   rB   zPyArrowConfig.requiresl   s@    u% 	8K(//6677777	8 	8r0   N)__name__
__module____qualname__r@   rD   rB    r0   r.   r<   r<   c   sA          ! ! !
8 8 8 8 8r0   r<   c                 4   t                      | _        t          D ]|}|                     d|           d                    |          }d                    |          }|                     |          o|                     |           }|| j        j        |<   }d S )Nmarkersr1   r5   )r<   pyarrowr   addinivalue_liner*   	getoptionr>   )configrC   enable_flagdisable_flagr>   s        r.   pytest_configurerT   q   s    "__FN 
5 
5t	
 	
 	
 $**400%,,T22&&{33 5&&|4495
*4!$''
5 
5r0   c                 r    |                                  D ]!}| j        j                            |           "d S r6   )iter_markersrQ   rN   rD   )itemrC   s     r.   pytest_runtest_setuprX      sC    !!## - -&&t,,,,- -r0   c                 4    t          j        | j                  S r6   )pathlibPathstrpath)tmpdirs    r.   tempdirr^      s     <'''r0   session)scopec                  D    t          j        t                    j        dz  S )Ndata)rZ   r[   __file__parentrK   r0   r.   base_datadirre      s    <!!(611r0   T)autousec                 2    |                      dd           dS )zStop the AWS SDK from trying to contact the EC2 metadata server.

    Otherwise, this causes a 5 second delay in tests that exercise the
    S3 filesystem.
    AWS_EC2_METADATA_DISABLEDr   N)setenv)monkeypatchs    r.   disable_aws_metadatark      s!     2F;;;;;r0   c                      t           j                            dd          } t          t           j                            dd                    }t           j                            dd          }| ||fS )NARROW_HDFS_TEST_HOSTr,   ARROW_HDFS_TEST_PORTr   ARROW_HDFS_TEST_USERhdfs)r$   r%   r&   int)hostportusers      r.   hdfs_connectionru      sY    :>>0)<<Drz~~4a8899D:>>0&99Dtr0   c                  8    dt                      }} d\  }}| |||fS )N	127.0.0.1)arrowapachearrowr   )rr   rs   
access_key
secret_keys       r.   s3_connectionr|      s*    n..$D3J
z:--r0            ?   c                       fd}|S )aP  
    Retry decorator

    Parameters
    ----------
    attempts : int, default 3
        The number of attempts.
    delay : float, default 1
        Initial delay in seconds.
    max_delay : float, optional
        The max delay between attempts.
    backoff : float, default 1
        The multiplier to delay after each attempt.
    c                 P     t          j                    fd            }|S )Nc                      }}|dk    rX	  	| i |S # t           $ r<}|dz  }|}|z  }
rt          |
          }t          j        |           Y d }~nd }~ww xY w|dk    X|)Nr   r   )	Exceptionmintimesleep)argskwargsremaining_attempts
curr_delayerrlast_exceptionattemptsbackoffdelayfunc	max_delays         r.   wrapperz(retry.<locals>.decorate.<locals>.wrapper   s    !)J$q((+40000  + + +&!+&%(N')J  @%(Y%?%?
Jz********+ %q(( ! s    
A2AA)	functoolswraps)r   r   r   r   r   r   s   ` r.   decoratezretry.<locals>.decorate   sM    				! 	! 	! 	! 	! 	! 	! 	! 
		! r0   rK   )r   r   r   r   r   s   ```` r.   retryr      s5           " Or0   c              #   z  K   t          ddd          d             }|                                }| \  }}}}d                    ||          }t          j                                        }	|	                    ||d           dd	d
dd||g}
d }	 t          j        |
|	          } ||           | ||dV  n$# t          $ r t          j        d           Y nw xY w|*|                                 |                                 d S d S # |)|                                 |                                 w w xY w)N   r   r   )r   r   r   c                     t           j                            d|  d          }|                                dk    sJ d S )Nzhttp://z/minio/health/live   )urllibrequesturlopengetcode)addressresps     r.   minio_server_health_checkz,s3_server.<locals>.minio_server_health_check   sB    ~%%&K&K&K&KLL||~~$$$$$$r0   z{}:{})MINIO_ACCESS_KEYMINIO_SECRET_KEYminioz--compatserverz--quietz	--addressenv
connectionprocessr^   z!`minio` command cannot be located)r   getbasetempr*   r$   r%   copyupdate
subprocessPopenOSErrorrF   rG   killwait)r|   tmpdir_factoryr   r]   rr   rs   rz   r{   r   r   r   procs               r.   	s3_serverr      s     
AQ***% % +*% ''))F)6&D$
JnnT4((G
*//

CJJ&&    
 Z9kVDD#...
 	"!'*** (
 
 	
 	
 	
 	
  9 9 97888889 IIKKKIIKKKKK 4IIKKKIIKKKK s*   B; 'D ;CD CD -D:c               #   B  K   t                      } t          j                                        }d}|dt	          |           g}d }	 t          j        ||          }|                                t          j	        d| d           d| f|dV  n1# t          $ r$}t          j	        d| d|            Y d }~nd }~ww xY w|*|                                 |                                 d S d S # |)|                                 |                                 w w xY w)	Nzstorage-testbenchz--portr   Command # did not start server successfully!	localhost)r   r    failed to execute: )r   r$   r%   r   strr   r   pollrF   rG   r   r   r   )rs   r   exer   r   es         r.   
gcs_serverr      sV     D
*//

C
C3t99%DD#...99;;"KL4LLLMMM
 '-
 
 	
 	
 	
 	
  > > ><t<<<<========> IIKKKIIKKKKK 4IIKKKIIKKKK s1   AB 
C1 
C B;6C1 ;C  C1 1-Dc              #     K   t                      }t          j                                        }|                                 }dd|dt          |          g}|dgz  }d }	 t          j        ||          }|                                t          j
        d| d           d|d	d
f||dV  n8# t          t          f$ r$}t          j
        d| d|            Y d }~nd }~ww xY w|*|                                 |                                 d S d S # |)|                                 |                                 w w xY w)Nzazurite-blobz
--locationz
--blobPortz--skipApiVersionCheckr   r   r   rw   devstoreaccount1zXEby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==r   r   )r   r$   r%   r   r   r   r   r   r   rF   rG   ModuleNotFoundErrorr   r   r   )r   rs   r   r]   r   r   r   s          r.   azure_serverr     s     D
*//

C''))FL&,D		JD 	$%%DD#...99;;"KL4LLLMMM '.@CD 
 
 	
 	
 	
 	
  ) > > ><t<<<<========> IIKKKIIKKKKK 4IIKKKIIKKKK s1    AB/ "D /C$ CD C$$D -Ebuiltin_picklecloudpickle)paramsr`   c                 6    |                      | j                  S r6   )getfixturevalueparam)r   s    r.   pickle_moduler   5  s     ""7=111r0   c                      dd l } | S )Nr   pickler   s    r.   r   r   @  s    MMMMr0   c                  X    t          j        d          } d| j        vr| j        | _        | S )Nr   HIGHEST_PROTOCOL)rF   importorskip__dict__DEFAULT_PROTOCOLr   )cps    r.   r   r   F  s/    		]	+	+B,, 1Ir0   )r}   r~   Nr   )3r   r$   rZ   r   sysr   urllib.requestr   rF   
hypothesishconftestr   r   rN   r   pyarrow.utilr   settingsregister_profile	Verbosityverboseload_profiler%   r&   platformtzdata_set_path	importlibr   pathjoinfilesr   printr:   r<   rT   rX   fixturer^   re   rk   ru   r|   r   r   r   r   r   r   r   rK   r0   r.   <module>r      sv  $     				      



           ' ' ' ' ' ' ' ' ( ( ( ( ( ( ' ' ' ' ' ' 
  Dt  4 4 4 
  E  3 3 3 
  G"&'k&9  ; ; ; 
  
';UCC D D D !,
  <7jnn%:DAAO ._--- <7	z~~gt$$,''''''	"$',,yx/H/H*"U"UBJw" 	 	 	EU    	K K K28 8 8 8 8 8 8 85 5 5"- - - ( ( (
 i   2 2 ! 2 < < < i     !  i   . . ! .       F i   # # ! #L i     ! 2 i     ! B    2 2 2 i     ! 
 i     !   s   51E' 'E:9E: