
    j9'                        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 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    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(d1d'Z) ej#        d          d(             Z* ej#        d          d)             Z+ ej#        d          d*             Z, ej#        d+d,gd-          d.             Z- ej#        d          d/             Z. ej#        d          d0             Z/dS )2    N   )groupsdefaultsfind_free_portcii  )max_examplesdev2   debug
   )r	   	verbosityHYPOTHESIS_PROFILEz	/dev/nullAWS_CONFIG_FILEwin32TZDIR)	resourcestzdatazoneinfozCPackage "tzdata" not found. Not setting TZDIR environment variable.c           	          dd}t           D ]\} |d| t          |                   }|                     d| d|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| 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      `/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/pyarrow/tests/conftest.pybool_envz"pytest_addoption.<locals>.bool_envB   s    
tzz||,, 	N33346665

QQuQQQR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_addoptionr9   @   s    
S 
S 
S 
S  C C(2522HUODD,U,, ,g?U??? 	 	B 	B 	B 	-e-- ,e@e@@@ 	 	C 	C 	C 	CC Cr.   c                        e Zd Zd Zd Zd ZdS )PyArrowConfigc                     i | _         d S r5   )
is_enabled)selfs    r,   __init__zPyArrowConfig.__init__Y   s    r.   c                 T    |j         }|t          v r|                     |           d S d S r5   )r)   r   requires)r>   markr8   s      r,   
apply_markzPyArrowConfig.apply_mark\   s1    	F??MM%      ?r.   c                 R    | j         |         st          j        | d           d S d S )Nz NOT enabled)r=   pytestskip)r>   r8   s     r,   rA   zPyArrowConfig.requiresa   s:    u% 	0K5.../////	0 	0r.   N)__name__
__module____qualname__r?   rC   rA    r.   r,   r;   r;   X   sA          ! ! !
0 0 0 0 0r.   r;   c                     t                      | _        t          D ]\}|                     d|           d| }d| }|                     |          o|                     |           }|| j        j        |<   ]d S )Nmarkersr0   r4   )r;   pyarrowr   addinivalue_line	getoptionr=   )configrB   enable_flagdisable_flagr=   s        r,   pytest_configurerS   f   s    "__FN 
5 
5t	
 	
 	
 )$((*D**&&{33 5&&|4495
*4!$''
5 
5r.   c                 r    |                                  D ]!}| j        j                            |           "d S r5   )iter_markersrP   rM   rC   )itemrB   s     r,   pytest_runtest_setuprW   w   sC    !!## - -&&t,,,,- -r.   c                 4    t          j        | j                  S r5   )pathlibPathstrpath)tmpdirs    r,   tempdirr]   }   s     <'''r.   session)scopec                  D    t          j        t                    j        dz  S )Ndata)rY   rZ   __file__parentrJ   r.   r,   base_datadirrd      s    <!!(611r.   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_metadatarj      s!     2F;;;;;r.   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_connectionrt      sY    :>>0)<<Drz~~4a8899D:>>0&99Dtr.   c                  8    dt                      }} d\  }}| |||fS )N	127.0.0.1)arrowapachearrowr   )rq   rr   
access_key
secret_keys       r,   s3_connectionr{      s*    n..$D3J
z:--r.            ?   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    				! 	! 	! 	! 	! 	! 	! 	! 
		! r.   rJ   )r   r   r   r   r   s   ```` r,   retryr      s5           " Or.   c              #   \  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||~~$$$$$$r.   :)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OSErrorrE   rF   killwait)r{   tmpdir_factoryr   r\   rq   rr   ry   rz   r   r   r   procs               r,   	s3_serverr      s     
AQ***% % +*% ''))F)6&D$
J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, C> ,C
C> CC> >-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   pollrE   rF   r   r   r   )rr   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   rv   devstoreaccount1zXEby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==r   r   )r   r#   r$   r   r   r   r   r   r   rE   rF   ModuleNotFoundErrorr   r   r   )r   rr   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 r5   )getfixturevalueparam)r   s    r,   pickle_moduler   *  s     ""7=111r.   c                      dd l } | S )Nr   pickler   s    r,   r   r   5  s    MMMMr.   c                  X    t          j        d          } d| j        vr| j        | _        | S )Nr   HIGHEST_PROTOCOL)rE   importorskip__dict__DEFAULT_PROTOCOLr   )cps    r,   r   r   ;  s/    		]	+	+B,, 1Ir.   )r|   r}   Nr~   )0r   r#   rY   r   sysr   urllib.requestr   rE   
hypothesishconftestr   r   pyarrow.utilr   settingsregister_profile	Verbosityverboseload_profiler$   r%   platform	importlibr   pathjoinfilesr   printr9   r;   rS   rW   fixturer]   rd   rj   rt   r{   r   r   r   r   r   r   r   rJ   r.   r,   <module>r      s&  $     				      



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