
    ei(                        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$                  j'                  dd       e
j$                  j'                  d	d
       e
j$                  j'                  dde
j(                  j*                         e
j$                  j-                  ej.                  j1                  dd	             dej.                  d<   ej2                  dk(  r&ej.                  j1                  dd      Zer ee       ej2                  dk(  r\ej.                  j1                  dd      @d dlmZ 	 ej:                  j=                   ej>                  d      d      ej.                  d<   d Z" G d d      Z#d Z$d Z%ejL                  d        Z' ejL                  d      d         Z( ejL                  d!"      d#        Z) ejL                  d      d$        Z* ejL                  d      d%        Z+d0d&Z, ejL                  d      d'        Z- ejL                  d      d(        Z. ejL                  d      d)        Z/ ejL                  d*d+gd,      d-        Z0 ejL                  d      d.        Z1 ejL                  d      d/        Z2y# e $ r  e!d       Y 7w xY w)1    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           	          dd}t         D ]M  } |d| t        |         }| j                  d| d|d| d       | j                  d| dd	d
| d       O y )Nc                     t         j                  j                  | j                               }|s|S |j	                         }|dv ry|dv ryt        | j                          d| d      )N>   1yonyestrueT>   0nnoofffalseF=z is not parsable as boolean)osenvirongetupperlower
ValueError)namedefaultvalues      X/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/pyarrow/tests/conftest.pybool_envz"pytest_addoption.<locals>.bool_envL   sd    

tzz|,N3366

~Qug5PQRR    PYARROW_TEST_	--enable-
store_truezEnable the z test group)actionr,   help
--disable-FzDisable the N)r   r   	addoption)parserr/   groupr,   s       r.   pytest_addoptionr;   J   s    
S  C]5'2HUOD9UG, ,g!,UG;? 	 	B 	:eW- ,e!-eWK@ 	 	CCr0   c                       e Zd Zd Zd Zd Zy)PyArrowConfigc                     i | _         y r7   )
is_enabled)selfs    r.   __init__zPyArrowConfig.__init__c   s	    r0   c                 P    |j                   }|t        v r| j                  |       y y r7   )r+   r   requires)r@   markr:   s      r.   
apply_markzPyArrowConfig.apply_markf   s#    		F?MM%  r0   c                 T    | j                   |   st        j                  | d       y y )Nz NOT enabled)r?   pytestskip)r@   r:   s     r.   rC   zPyArrowConfig.requiresk   s&    u%KK5'./ &r0   N)__name__
__module____qualname__rA   rE   rC    r0   r.   r=   r=   b   s    !
0r0   r=   c                     t               | _        t        D ]\  }| j                  d|       d| }d| }| j	                  |      xr | j	                  |       }|| j                  j
                  |<   ^ y )Nmarkersr2   r6   )r=   pyarrowr   addinivalue_line	getoptionr?   )configrD   enable_flagdisable_flagr?   s        r.   pytest_configurerU   p   s    "_FN 
5t	
 "$(#D6*&&{3 5&&|495
*4!!$'
5r0   c                 x    | j                         D ]'  }| j                  j                  j                  |       ) y r7   )iter_markersrR   rO   rE   )itemrD   s     r.   pytest_runtest_setuprY      s2    !!# -&&t,-r0   c                 @    t        j                  | j                        S r7   )pathlibPathstrpath)tmpdirs    r.   tempdirr_      s     <<''r0   session)scopec                  N    t        j                  t              j                  dz  S )Ndata)r[   r\   __file__parentrL   r0   r.   base_datadirrf      s    <<!((611r0   T)autousec                 (    | j                  dd       y)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_metadatarl      s     2F;r0   c                      t         j                  j                  dd      } t        t         j                  j                  dd            }t         j                  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_connectionrv      sS    ::>>0)<Drzz~~4a89D::>>0&9Dtr0   c                  0    dt               }} d\  }}| |||fS )N	127.0.0.1)arrowapachearrowr   )rs   rt   
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                 L     t        j                          fd       }|S )Nc                      }}|dkD  r		  	| i |S # t         $ r9}|dz  }|}|z  }
rt        |
      }t        j                  |       Y d }~nd }~ww xY w|dkD  rVN)Nr      )	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(+000 !  ! +&!+&%(N')J %(Y%?
JJz**+ %q(s    	A/AA)	functoolswraps)r   r   r   r   r   r   s   ` r.   decoratezretry.<locals>.decorate   s%    			! 
	! r0   rL   )r   r   r   r   r   s   ```` r.   retryr      s    " Or0   c              #     K   t        ddd      d        }|j                         }| \  }}}}| d| }t        j                  j	                         }	|	j                  ||d       dd	d
dd||g}
d }	 t        j                  |
|	      } ||       | ||d |!|j                          |j                          y y # t        $ r t        j                  d       Y Dw xY w# |!|j                          |j                          w w xY ww)N   r   r   )r   r   r   c                 t    t         j                  j                  d|  d      }|j                         dk(  sJ y )Nzhttp://z/minio/health/live   )urllibrequesturlopengetcode)addressresps     r.   minio_server_health_checkz,s3_server.<locals>.minio_server_health_check   s4    ~~%%y8J&KL||~$$$r0   :)MINIO_ACCESS_KEYMINIO_SECRET_KEYminioz--compatserverz--quietz	--addressenv
connectionprocessr_   z!`minio` command cannot be located)r   getbasetempr%   r&   copyupdate
subprocessPopenOSErrorrG   rH   killwait)r}   tmpdir_factoryr   r^   rs   rt   r{   r|   r   r   r   procs               r.   	s3_serverr      s&    
AQ*% +% '')F)6&D$
JavG
**//
CJJ&& 
 Z9kVDD#.
 	"'* (
 	
 IIKIIK   9789 IIKIIK s<   A0D
3B> 
C" $D
>CC" CC" "%DD
c               #     K   t               } t        j                  j                         }d}|dt	        |       g}d }	 t        j                  ||      }|j                         t        j                  d| d       d| f|d |!|j                          |j                          y y # t        $ r%}t        j                  d| d|        Y d }~Md }~ww xY w# |!|j                          |j                          w w xY ww)	Nzstorage-testbenchz--portr   Command # did not start server successfully!	localhost)r   r    failed to execute: )r   r%   r&   r   strr   r   pollrG   rH   r   r   r   )rt   r   exer   r   es         r.   
gcs_serverr      s     D
**//
C
C3t9%DD#.99;"KK(4&(KLM
 '-
 	

 IIKIIK   >htf$8<==> IIKIIK sA   ;DA B+ >	C $D+	C4CC CC %DDc              #   J  K   t               }t        j                  j                         }| j	                         }dd|dt        |      g}|dgz  }d }	 t        j                  ||      }|j                         t        j                  d| d       d|d	d
f||d |!|j                          |j                          y y # t        t        f$ r%}t        j                  d| d|        Y d }~Sd }~ww xY w# |!|j                          |j                          w w xY ww)Nzazurite-blobz
--locationz
--blobPortz--skipApiVersionCheckr   r   r   rx   devstoreaccount1zXEby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==r   r   )r   r%   r&   r   r   r   r   r   r   rG   rH   ModuleNotFoundErrorr   r   r   )r   rt   r   r^   r   r   r   s          r.   azure_serverr     s(    D
**//
C'')FL&,D	JD 	$%%DD#.99;"KK(4&(KLM '.@CD 
 	
 IIKIIK   ) >htf$8<==> IIKIIK sC   AD#A C C;  $D#C8C3.C; 3C88C; ;%D  D#builtin_picklecloudpickle)paramsra   c                 8    | j                  | j                        S r7   )getfixturevalueparam)r   s    r.   pickle_moduler   4  s     ""7==11r0   c                      dd l } | S )Nr   pickler   s    r.   r   r   ?  s
    Mr0   c                  n    t        j                  d      } d| j                  vr| j                  | _        | S )Nr   HIGHEST_PROTOCOL)rG   importorskip__dict__DEFAULT_PROTOCOLr   )cps    r.   r   r   E  s1    			]	+B, 11Ir0   )   g      ?Nr   )3r   r%   r[   r   sysr   urllib.requestr   rG   
hypothesishconftestr   r   rO   r   pyarrow.utilr   settingsregister_profile	Verbosityverboseload_profiler&   r'   platformtzdata_set_path	importlibr   pathjoinfilesr   printr;   r=   rU   rY   fixturer_   rf   rl   rv   r}   r   r   r   r   r   r   r   rL   r0   r.   <module>r      s  $  	   
     ' ( ' 

  Dt  4 

  E  3 

  G"&'kk&9&9  ; 

  

';UC D !,

  <<7jjnn%:DAO_- <<7	zz~~gt$,'	"$'',,yx/H*"UBJJwC00 05"- ( (
 i 2 !2 < < i  ! i . !. F i # !#L i  !2 i  !B  22 i  !
 i  !E # 	U	s   9J0 0K K