Ë
    ìmxi’(  ã                   óˆ  — 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Údevé2   Ú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      úM/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/conftest.pyÚbool_envz"pytest_addoption.<locals>.bool_envL   sd   € Ü—
‘
—‘˜tŸz™z›|Ó,ˆÙØˆNØ—‘“ˆØÐ3Ñ3ØØÐ6Ñ6Øä §
¡
£˜~¨Q¨u¨gÐ5PÐ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¨'Ð2´H¸U±OÓDˆØ×Ñ˜9 U GÐ,Ø ,°gØ!,¨U¨G°;Ð?ð 	ô 	Bð 	×Ñ˜: e WÐ-Ø ,°eØ!-¨e¨W°KÐ@ð 	õ 	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‰?Ø�M‰M˜%Õ ð 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Ò%Ü�K‰K˜5˜' Ð.Õ/ð &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ƒ   € ä"“_€F„Näò 
5ˆØ×ÑØ�tô	
ð " $ Ð(ˆØ# D 6Ð*ˆà×&Ñ& {Ó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)z Stop 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   € ð ×ÑÐ2°FÕ;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ÜŒr�z‰z�~‰~Ð4°aÓ8Ó9€DÜ�:‰:�>‰>Ð0°&Ó9€DØ��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ŒVŒN)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Ó%?˜
Ü—J‘J˜z×*Ñ*ûð+úð % 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   € ä�~‰~×%Ñ%¨°¨yÐ8JÐ&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&  è ø€ ä
�A˜Q¨Ô*ñ%ó +ð%ð ×'Ñ'Ó)€FØ)6Ñ&€Dˆ$�
˜Jà��a˜�vÐ€GÜ
�*‰*�/‰/Ó
€CØ‡J�JØ&Ø&ñô ð
 �Z ¨9°kØ�Vð€Dà€DðÜ×Ñ ¨#Ô.ˆñ
 	" 'Ô*ð (ØØñ
ò 	
ð ÐØ�I‰IŒKØ�I‰I�Kð øô ò 9Ü�‰Ð7Ö8ð9ûð ÐØ�I‰IŒKØ�I‰I�Kð ü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Ø�œ3˜t›9Ð%€DØ€Dðä×Ñ ¨#Ô.ˆà�9‰9‹;Ð"Ü�K‰K˜( 4 &Ð(KÐLÔMð
 '¨Ð-Øñ
ò 	
ð
 ÐØ�I‰IŒKØ�I‰I�Kð øô ò >Ü�‰�h˜t˜fÐ$8¸¸Ð<×=Ñ=ûð>ûð ÐØ�I‰IŒKØ�I‰I�Kð ü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Ã	ÐJ€Dð 	Ð$Ð%Ñ%€DØ€DðÜ×Ñ ¨#Ô.ˆà�9‰9‹;Ð"Ü�K‰K˜( 4 &Ð(KÐLÔMð '¨Ð.@ðCðDð Øñ
ò 	
ð ÐØ�I‰IŒKØ�I‰I�Kð øô  ¤Ð)ò >Ü�‰�h˜t˜fÐ$8¸¸Ð<×=Ñ=ûð>ûð ÐØ�I‰IŒKØ�I‰I�Kð ü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Ö  ðó$ Û 	Û Û Û 
Û Û ã Û ç 'å (Ý 'ð ‡
�
× Ñ ˜D¨tÐ Ô 4Ø ‡
�
× Ñ ˜E°Ð Ô 3Ø ‡
�
× Ñ ˜G°"Ø&'§k¡k×&9Ñ&9ð ô ;ð ‡
�
× Ñ ˜Ÿ
™
Ÿ™Ð';¸UÓCÔ Dð !,€‡
�
ÐÑ ð ‡<�<�7ÒØ—j‘j—n‘nÐ%:¸DÓA€OÙÙ˜_Ô-ð ‡<�<�7ÒØ	‡z�z‡~�~�g˜tÓ$Ð,Ý'ð	Ø"$§'¡'§,¡,¨¨y¯©¸xÓ/HÈ*Ó"UˆB�J‰J�wÑò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