Ë
    ìmxi6 ã                   ó  — d dl m Z mZmZ d dlZd dlZd dlZd dlm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 d dlmZmZmZmZ d dlmZmZmZmZmZmZmZmZmZm Z m!Z! d dl"m#Z# ejH                  jK                  ejH                  jM                  e'«      «      Z( G d„ d	e«      Z)ejT                  d
„ «       Z+ejT                  d„ «       Z,ejT                  d„ «       Z-ejT                  d„ «       Z.ejT                  d„ «       Z/ejT                  d„ «       Z0ejT                  d„ «       Z1ejT                  d„ «       Z2ejT                  d„ «       Z3dZ4ejT                  d„ «       Z5ejT                  d„ «       Z6ejT                  d„ «       Z7ejT                  d„ «       Z8ejT                  d„ «       Z9 ejT                   ejt                  dd¬«       ejt                  dd¬«       ejt                  dd¬«       ejt                  d d!ejv                  jx                  ¬"«       ejt                  d#d$ejv                  jz                  ¬"«       ejt                  d%d&ejv                  j|                  ¬"«       ejt                  d'd(ejv                  jl                  ¬"«       ejt                  d)d*¬«       ejt                  d+d,¬«       ejt                  d-d.¬«       ejt                  d/d0¬«       ejt                  d1d2¬«       ejt                  d3d4ejv                  jx                  ¬"«      g¬5«      d6„ «       Z?ejT                  d7„ «       Z@ejT                  d8„ «       ZAejT                  d9„ «       ZBejT                  d:„ «       ZCd;„ ZDd<„ ZEd=„ ZFd>„ ZGd?„ ZHejv                  jx                  d@„ «       ZIdA„ ZJdB„ ZKdC„ ZLdD„ ZMdE„ ZNdF„ ZOdG„ ZPdH„ ZQdI„ ZRdJ„ ZSdK„ ZTdL„ ZUdM„ ZVdN„ ZWdO„ ZXdP„ ZYdQ„ ZZdR„ Z[dS„ Z\dT„ Z]dU„ Z^dV„ Z_dW„ Z`ejv                  j                  ejv                  jÃ                  dXdde`fddYe`fdZdejÄ                  fdZd[ejÄ                  fg«      d\„ «       «       Zcd]„ Zdd^„ Zeejv                  j                  ejv                  jÃ                  d_dde`fddYe`fdZdejÌ                  fdZd[ejÌ                  fg«      d`„ «       «       Zgejv                  j                  ejv                  jÃ                  dadde`e`fddYe`e`fdZdejÄ                  ejÌ                  fdZd[ejÄ                  ejÌ                  fg«      db„ «       «       Zhdc„ Zidd„ Zjde„ Zkdf„ Zldg„ Zmejv                  jz                  dh„ «       Znejv                  jx                  di„ «       Zoejv                  jx                  dj„ «       Zpejv                  jx                  dk„ «       Zqejv                  j|                  dl„ «       Zrejv                  jl                  dm„ «       Zsejv                  jÃ                  dndoedpfdqedrfdsedrfdtedrfduedvfdwedxfdyedxfdzed{fd|ed{fd}ed~fdxedxfd{ed{fdedfg«      d€„ «       Ztd�„ Zuejv                  jÃ                  d‚dpdxdrd{e'g«      dƒ„ «       Zvejv                  jx                  d„„ «       Zwejv                  jz                  d…„ «       Zxd†„ Zyd‡„ Zzdˆ„ Z{d‰„ Z|dŠ„ Z}d‹„ Z~dŒ„ Zd�„ Z€dŽ„ Z�d�„ Z‚d�„ Zƒejv                  jx                  d‘„ «       Z„ejv                  jx                  d’„ «       Z…ejv                  jx                  d“„ «       Z†ejv                  jx                  d”„ «       Z‡d•„ Zˆejv                  jx                  d–„ «       Z‰ejv                  jx                  d—„ «       ZŠejv                  �j                  ejv                  �j                  ejv                  jx                  d˜„ «       «       «       Z�ejv                  jx                  ejv                  �j                  d™¬š«      ejv                  �j                   e«       d›¬š«      dœ„ «       «       «       Z�d�„ Z‘dž„ Z’dŸ„ Z“y) é    )ÚdatetimeÚtimezoneÚ	timedeltaN)Úurlopen)Úassert_file_not_found)Ú_filesystem_uriÚProxyHandlerÚ_configure_s3_limited_userÚrunning_on_musllinux)ÚFileTypeÚFileInfoÚFileSelectorÚ
FileSystemÚLocalFileSystemÚSubTreeFileSystemÚ_MockFileSystemÚFileSystemHandlerÚPyFileSystemÚFSSpecHandlerÚ
copy_files)Úfind_free_portc                   óz   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚDummyHandlerc                 ó   — || _         y ©N)Ú_value)ÚselfÚvalues     úL/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/test_fs.pyÚ__init__zDummyHandler.__init__/   s	   € Øˆ�ó    c                 ó`   — t        |t        «      r| j                  |j                  k(  S t        S r   ©Ú
isinstancer   r   ÚNotImplemented©r   Úothers     r   Ú__eq__zDummyHandler.__eq__2   ó&   € Ü�eÔ.Ô/Ø—;‘; %§,¡,Ñ.Ð.ÜÐr!   c                 ó`   — t        |t        «      r| j                  |j                  k7  S t        S r   r#   r&   s     r   Ú__ne__zDummyHandler.__ne__7   r)   r!   c                  ó   — y)NÚdummy© ©r   s    r   Úget_type_namezDummyHandler.get_type_name<   s   € Ør!   c                 ó   — |S r   r.   ©r   Úpaths     r   Únormalize_pathzDummyHandler.normalize_path?   s   € Øˆr!   c                 ór  — g }|D ]¯  }d|v r*|j                  t        |t        j                  «      «       Œ1d|v r*|j                  t        |t        j                  «      «       Œ_d|v r*|j                  t        |t        j
                  «      «       Œ�d|v r|j                  t        «       «       Œ«t        ‚ |S )NÚfileÚdirÚnotfoundÚbadtype)Úappendr   r   ÚFileÚ	DirectoryÚNotFoundÚobjectÚIOError)r   ÚpathsÚinfor3   s       r   Úget_file_infozDummyHandler.get_file_infoB   s—   € ØˆØò 	ˆDØ˜‰~Ø—‘œH T¬8¯=©=Ó9Õ:Ø˜$‘Ø—‘œH T¬8×+=Ñ+=Ó>Õ?Ø˜tÑ#Ø—‘œH T¬8×+<Ñ+<Ó=Õ>Ø˜dÑ"à—‘œF›HÕ%ä�ð	ð ˆr!   c                 ó.  — |j                   dk7  r#|j                  rg S t        |j                   «      ‚t        dt        j
                  d¬«      t        dt        j                  «      g}|j                  r |t        dt        j
                  d¬«      gz  }|S )NÚsomedirúsomedir/file1é{   )Úsizeúsomedir/subdir1úsomedir/subdir1/file2iÈ  )Úbase_dirÚallow_not_foundÚFileNotFoundErrorr   r   r;   r<   Ú	recursive)r   ÚselectorÚinfoss      r   Úget_file_info_selectorz#DummyHandler.get_file_info_selectorR   s‰   € Ø×Ñ 	Ò)Ø×'Ò'Ø�	ä'¨×(9Ñ(9Ó:Ð:ä�_¤h§m¡m¸#Ô>ÜÐ&¬×(:Ñ(:Ó;ð
ˆð ×ÒØÜÐ0´(·-±-ÀcÔJðñ ˆEð ˆr!   c                 ó>   — |dk(  r|du sJ ‚y |dk(  r|du sJ ‚y t         ‚)NrM   Túnon-recursiveF)r?   )r   r3   rM   s      r   Ú
create_dirzDummyHandler.create_dirb   s3   € Ø�;ÒØ Ñ$Ð$Ñ$Ø�_Ò$Ø Ñ%Ð%Ñ%äˆMr!   c                 ó   — |dk(  sJ ‚y )NÚ
delete_dirr.   r2   s     r   rU   zDummyHandler.delete_dirj   s   € Ø�|Ò#Ð#Ñ#r!   c                 ó@   — |j                  d«      st        ‚|dk(  sJ ‚y )Nú/Údelete_dir_contents)ÚstripÚ
ValueError)r   r3   Úmissing_dir_oks      r   rX   z DummyHandler.delete_dir_contentsm   s"   € Ø�z‰z˜#ŒÜÐØÐ,Ò,Ð,Ñ,r!   c                  ó   — y r   r.   r/   s    r   Údelete_root_dir_contentsz%DummyHandler.delete_root_dir_contentsr   s   € Ør!   c                 ó   — |dk(  sJ ‚y )NÚdelete_filer.   r2   s     r   r_   zDummyHandler.delete_fileu   s   € Ø�}Ò$Ð$Ñ$r!   c                 ó    — |dk(  sJ ‚|dk(  sJ ‚y )NÚ	move_fromÚmove_tor.   ©r   ÚsrcÚdests      r   ÚmovezDummyHandler.movex   s   € Ø�kÒ!Ð!Ð!Ø�yÒ Ð Ñ r!   c                 ó    — |dk(  sJ ‚|dk(  sJ ‚y )NÚcopy_file_fromÚcopy_file_tor.   rc   s      r   Ú	copy_filezDummyHandler.copy_file|   s   € ØÐ&Ò&Ð&Ð&Ø�~Ò%Ð%Ñ%r!   c                 ór   — d|v rt        |«      ‚|› d�j                  d«      }t        j                  |«      S )Nr8   z:input_streamÚutf8©rL   ÚencodeÚpaÚBufferReader©r   r3   Údatas      r   Úopen_input_streamzDummyHandler.open_input_stream€   s;   € Ø˜ÑÜ# DÓ)Ð)Ø��}Ð%×,Ñ,¨VÓ4ˆÜ�‰˜tÓ$Ð$r!   c                 ór   — d|v rt        |«      ‚|› d�j                  d«      }t        j                  |«      S )Nr8   z:input_filerl   rm   rq   s      r   Úopen_input_filezDummyHandler.open_input_file†   s;   € Ø˜ÑÜ# DÓ)Ð)Ø��{Ð#×*Ñ*¨6Ó2ˆÜ�‰˜tÓ$Ð$r!   c                 óH   — d|v rt        |«      ‚t        j                  «       S ©Nr8   ©rL   ro   ÚBufferOutputStream©r   r3   Úmetadatas      r   Úopen_output_streamzDummyHandler.open_output_streamŒ   ó$   € Ø˜ÑÜ# DÓ)Ð)Ü×$Ñ$Ó&Ð&r!   c                 óH   — d|v rt        |«      ‚t        j                  «       S rw   rx   rz   s      r   Úopen_append_streamzDummyHandler.open_append_stream‘   r}   r!   N)é*   )Ú__name__Ú
__module__Ú__qualname__r    r(   r+   r0   r4   rB   rP   rS   rU   rX   r]   r_   rf   rj   rs   ru   r|   r   r.   r!   r   r   r   .   s\   „ óòò
ò
òòò ò ò$ò-ò
ò%ò!ò&ò%ò%ò'ó
'r!   r   c                 ó8   ‡— t        t        «       ˆfd„dd¬«      S )Nc                 ó*   •— ‰| z  j                  «       S r   ©Úas_posix©ÚpÚtempdirs    €r   ú<lambda>zlocalfs.<locals>.<lambda>›   ó   ø€ ˜' A™+×/Ñ/Ó1€ r!   T©ÚfsÚpathfnÚallow_move_dirÚallow_append_to_file©Údictr   ©ÚrequestrŠ   s    `r   Úlocalfsr–   —   s   ø€ äÜÓÛ1ØØ!ô	ð r!   c                 ó\   ‡— t        t        t        t        «       «      «      ˆfd„dd¬«      S )Nc                 ó*   •— ‰| z  j                  «       S r   r†   rˆ   s    €r   r‹   zpy_localfs.<locals>.<lambda>¥   rŒ   r!   Tr�   )r“   r   r	   r   r”   s    `r   Ú
py_localfsr™   ¡   s)   ø€ äÜœ¤_Ó%6Ó7Ó8Û1ØØ!ô	ð r!   c                 ó2   — t        t        «       d„ dd¬«      S )Nc                 ó   — | S r   r.   ©r‰   s    r   r‹   zmockfs.<locals>.<lambda>¯   ó   € ˜€ r!   Tr�   )r“   r   ©r•   s    r   ÚmockfsrŸ   «   s   € äÜÓÙØØ!ô	ð r!   c                 óV   — t        t        t        t        «       «      «      d„ dd¬«      S )Nc                 ó   — | S r   r.   rœ   s    r   r‹   zpy_mockfs.<locals>.<lambda>¹   r�   r!   Tr�   )r“   r   r	   r   rž   s    r   Ú	py_mockfsr¢   µ   s(   € äÜœ¤_Ó%6Ó7Ó8ÙØØ!ô	ð r!   c                 ó<   ‡— t        t        d¬«      ˆfd„dd¬«      S )NT©Úuse_mmapc                 ó*   •— ‰| z  j                  «       S r   r†   rˆ   s    €r   r‹   z#localfs_with_mmap.<locals>.<lambda>Ã   rŒ   r!   r�   r’   r”   s    `r   Úlocalfs_with_mmapr§   ¿   s!   ø€ äÜ DÔ)Û1ØØ!ô	ð r!   c                 óN   — t        t        t        |«      |d   «      d„ dd¬«      S )NrŽ   c                 ó   — | S r   r.   rœ   s    r   r‹   z!subtree_localfs.<locals>.<lambda>Í   r�   r!   Tr�   )r“   r   Ústr)r•   rŠ   r–   s      r   Úsubtree_localfsr«   É   s*   € äÜœS ›\¨7°4©=Ó9ÙØØ!ô	ð r!   c              #   óŒ  K  — | j                   j                  j                  d«       ddlm} |d   \  }}d} ||› d|› �ddt        d	¬
«      d¬«      }	 |j                  |«       t        ||j                  dd¬«      –— |j                  |«       y # t        $ r%}t        j                  d|› d|› �«       Y d }~ŒVd }~ww xY w­w)NÚgcsr   ©ÚGcsFileSystemÚ
connectionúpyarrow-filesystem/ú:ÚhttpTé-   )Úsecondsútest-project-id)Úendpoint_overrideÚschemeÚ	anonymousÚretry_time_limitÚ
project_idzCould not create directory in ú: Fr�   )ÚconfigÚpyarrowÚrequiresÚ
pyarrow.fsr¯   r   rS   ÚOSErrorÚpytestÚskipr“   Ú__add__rU   )r•   Ú
gcs_serverr¯   ÚhostÚportÚbucketrŽ   Úes           r   ÚgcsfsrÊ   Ó   sÌ   è ø€ à‡N�N×Ñ×#Ñ# EÔ*Ý(à˜LÑ)�J€Dˆ$Ø"€Fá	Ø!˜F ! D 6Ð*ØàÜ"¨2Ô.Ø$ô
€Bð@Ø
�‰�fÔô ØØ�~‰~ØØ"ô	ò ð ‡M�M�&Õøô ò @Ü�‰Ð4°R°D¸¸1¸#Ð>×?Ñ?ûð@üs0   ‚ACÁB Á&-CÂ	CÂB<Â7CÂ<CÃCc              #   ó  K  — | j                   j                  j                  d«       ddlm} |d   \  }}}}d} ||||› d|› �ddd¬	«      }|j                  |«       t        ||j                  d
d
¬«      –— |j                  |«       y ­w)NÚs3r   ©ÚS3FileSystemr°   r±   r²   r³   T)Ú
access_keyÚ
secret_keyr·   r¸   Úallow_bucket_creationÚallow_bucket_deletionFr�   )	r½   r¾   r¿   rÀ   rÎ   rS   r“   rÄ   rU   )	r•   Ú	s3_serverrÎ   rÆ   rÇ   rÏ   rÐ   rÈ   rŽ   s	            r   Ús3fsrÔ   ñ   s™   è ø€ à‡N�N×Ñ×#Ñ# DÔ)Ý'à)2°<Ñ)@Ñ&€Dˆ$�
˜JØ"€Fá	ØØØ!˜F ! D 6Ð*ØØ"Ø"ô
€Bð ‡M�M�&Ôä
ØØ�~‰~ØØ"ô	ò ð ‡M�M�&Õùs   ‚B	Bc                 óR   — d}t        t        ||d   «      |j                  dd¬«      S )Nzpyarrow-filesystem/prefix/rŽ   Fr�   )r“   r   rÄ   )r•   rÔ   Úprefixs      r   Úsubtree_s3fsr×     s/   € à)€FÜÜ˜V T¨$¡ZÓ0Ø�~‰~ØØ"ô	ð r!   aª  {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObjectTagging",
                "s3:DeleteObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ]

        },
        {
            "Effect": "Deny",
            "Action": [
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::no-delete-bucket*"
            ]
        }
    ]
}c              #   ó"  K  — | j                   j                  j                  d«       ddlm} |d   \  }}}}|› d|› �}d}d}	 |||||||¬«      }
|
j                  |	«       t        |
|	j                  d	d	¬
«      –— |
j                  |	«       y ­w)NÚazurer   ©ÚAzureFileSystemr°   r²   r³   r±   ©Úaccount_nameÚaccount_keyÚblob_storage_authorityÚdfs_storage_authorityÚblob_storage_schemeÚdfs_storage_schemeTr�   )	r½   r¾   r¿   rÀ   rÛ   rS   r“   rÄ   rU   )r•   Úazure_serverrÛ   rÆ   rÇ   rÝ   rÞ   Úazurite_authorityÚazurite_schemeÚ	containerrŽ   s              r   Úazurefsrç   7  s¥   è ø€ à‡N�N×Ñ×#Ñ# GÔ,Ý*à,8¸Ñ,FÑ)€Dˆ$�˜kØ˜&  $ Ð(ÐØ€Nà%€Iá	 lØ%0Ø0AØ/@Ø-;Ø,:ô
<€Bð ‡M�M�)Ôä
ØØ× Ñ ØØ!ô	ò ð ‡M�M�)Õùs   ‚BBc                 óì   — | j                   j                  j                  d«       t        j                  «       st        j                  d«       ddlm} |\  }}} ||||¬«      }t        |d„ dd¬«      S )	NÚhdfsúCannot locate libhdfsr   ©ÚHadoopFileSystem)rÇ   Úuserc                 ó   — | S r   r.   rœ   s    r   r‹   zhdfs.<locals>.<lambda>a  r�   r!   Tr�   )
r½   r¾   r¿   ro   Úhave_libhdfsrÂ   rÃ   rÀ   rì   r“   )r•   Úhdfs_connectionrì   rÆ   rÇ   rí   rŽ   s          r   ré   ré   T  sg   € à‡N�N×Ñ×#Ñ# FÔ+Ü�?‰?ÔÜ�‰Ð+Ô,å+à&Ñ€Dˆ$�Ù	˜$ T°Ô	5€BäØÙØØ!ô	ð r!   c                 ó˜   ‡— t        j                  d«      }|j                  d«      }t        t	        t        |«      «      ˆfd„dd¬«      S )NÚfsspecr6   c                 ó*   •— ‰| z  j                  «       S r   r†   rˆ   s    €r   r‹   z#py_fsspec_localfs.<locals>.<lambda>m  rŒ   r!   Tr�   )rÂ   ÚimportorskipÚ
filesystemr“   r   r   ©r•   rŠ   rò   rŽ   s    `  r   Úpy_fsspec_localfsr÷   g  sF   ø€ ä× Ñ  Ó*€FØ	×	Ñ	˜6Ó	"€BÜÜœ bÓ)Ó*Û1ØØ!ô	ð r!   c                 óÞ   — t        j                  dd¬«      }|j                  dk(  rt        j                  d«       |j	                  d«      }t        t        t        |«      «      d„ dd¬	«      S )
Nrò   z0.7.5)Ú
minversionz0.8.5z,Bug in fsspec 0.8.5 for in-memory filesystemÚmemoryc                 ó   — | S r   r.   rœ   s    r   r‹   z$py_fsspec_memoryfs.<locals>.<lambda>|  r�   r!   Tr�   )rÂ   rô   Ú__version__rÃ   rõ   r“   r   r   rö   s       r   Úpy_fsspec_memoryfsrý   s  sb   € ä× Ñ  °gÔ>€FØ×Ñ˜WÒ$ä�‰ÐBÔCØ	×	Ñ	˜8Ó	$€BÜÜœ bÓ)Ó*ÙØØ!ô	ð r!   c           
   #   ó8  K  — t        j                  d«      }|d   \  }}}}d}|j                  ||t        d|› d|› �¬«      ¬«      }t	        t        |«      «      }|j                  |«       t        ||j                  dd	¬
«      –— |j                  |«       y ­w)NrÔ   r°   r±   zhttp://r²   )Úendpoint_url)ÚkeyÚsecretÚclient_kwargsFTr�   )	rÂ   rô   rÎ   r“   r   r   rS   rÄ   rU   )	r•   rÓ   rÔ   rÆ   rÇ   rÏ   rÐ   rÈ   rŽ   s	            r   Úpy_fsspec_s3fsr  ‚  s¦   è ø€ ä×Ñ˜vÓ&€DØ)2°<Ñ)@Ñ&€Dˆ$�
˜JØ"€Fà	×	Ñ	ØØÜ¨'°$°°q¸¸Ð(?Ô@ð 
ó 
€Bô
 
”m BÓ'Ó	(€BØ‡M�M�&Ôä
ØØ�~‰~ØØ!ô	ò ð ‡M�M�&Õùs   ‚BBr–   zLocalFileSystem())Úidr§   zLocalFileSystem(use_mmap=True)r«   z$SubTreeFileSystem(LocalFileSystem())rÔ   rÎ   )r  ÚmarksrÊ   r¯   rç   rÛ   ré   rì   rŸ   z_MockFileSystem()r™   z-PyFileSystem(ProxyHandler(LocalFileSystem()))r¢   z-PyFileSystem(ProxyHandler(_MockFileSystem()))r÷   z5PyFileSystem(FSSpecHandler(fsspec.LocalFileSystem()))rý   z8PyFileSystem(FSSpecHandler(fsspec.filesystem("memory")))r  z0PyFileSystem(FSSpecHandler(s3fs.S3FileSystem())))Úparamsc                 ó8   — | j                  | j                  «      S r   )ÚgetfixturevalueÚparamrž   s    r   Úfilesystem_configr
  ™  s   € ðx ×"Ñ" 7§=¡=Ó1Ð1r!   c                 ó   — | d   S ©NrŽ   r.   ©r
  s    r   rŽ   rŽ   Ø  s   € à˜TÑ"Ð"r!   c                 ó   — | d   S )Nr�   r.   r  s    r   r�   r�   Ý  s   € à˜XÑ&Ð&r!   c                 ó   — | d   S )Nr�   r.   r  s    r   r�   r�   â  s   € àÐ-Ñ.Ð.r!   c                 ó   — | d   S )Nr‘   r.   r  s    r   r‘   r‘   ç  s   € àÐ3Ñ4Ð4r!   c                 ó†  — t        | j                  t        «      sJ ‚t        | j                  t        «      sJ ‚| j                  dk\  sJ ‚| j                  t        j                  | j                  j                  «       dz  «      k(  sJ ‚| j                  j                  }|€J ‚|j                  d «      t        d«      k(  sJ ‚y )Nr   g    eÍÍA)r$   Úmtimer   Úmtime_nsÚintrÂ   ÚapproxÚ	timestampÚtzinfoÚ	utcoffsetr   )Ú	file_infor  s     r   Úcheck_mtimer  ì  s²   € Ü�i—o‘o¤xÔ0Ð0Ð0Ü�i×(Ñ(¬#Ô.Ð.Ð.Ø×Ñ Ò"Ð"Ð"Ø×Ñ¤§¡Ø�‰×!Ñ!Ó# cÑ)ó"+ò +ð +ð +ð �_‰_×#Ñ#€FØÐÐÐØ×Ñ˜DÓ!¤Y¨q£\Ò1Ð1Ñ1r!   c                 ó<   — | j                   �J ‚| j                  �J ‚y r   )r  r  ©r  s    r   Úcheck_mtime_absentr  ø  s$   € Ø�?‰?Ð"Ð"Ð"Ø×ÑÐ%Ð%Ñ%r!   c                 óJ   — | j                   €t        | «       y t        | «       y r   )r  r  r  r  s    r   Úcheck_mtime_or_absentr  ý  s   € Ø‡�ÐÜ˜9Õ%ä�IÕr!   c                 óP   — | j                   dk(  rt        j                  d¬«       y y )Núpy::fsspec+('s3', 's3a')zNot working with fsspec's s3fs©Úreason)Ú	type_namerÂ   Úxfail©rŽ   s    r   Úskip_fsspec_s3fsr'    s!   € Ø	‡|�|Ð1Ò1Ü�‰Ð<Ö=ð 2r!   c                 óP   — | j                   dk(  rt        j                  |¬«       y y )NÚabfsr"  )r$  rÂ   rÃ   )rŽ   r#  s     r   Ú
skip_azurer*  	  s   € Ø	‡|�|�vÒÜ�‰˜6Ö"ð r!   c                 ó  — ddl m} t        | t        dd«       | d   \  }}}} |dd|› d|› �d¬«      }|j	                  d	«       t        j                  t        j                  d
¬«      5  |j	                  d«       d d d «       t        j                  t        j                  d¬«      5  |j                  d«       d d d «       t        j                  t        d¬«      5  |j                  dd«       d d d «       t        j                  t        j                  d¬«      5  |j                  d«      5 }|j                  d«       d d d «       d d d «       |j                  d«      5 }|j                  d«       d d d «       t        j                  t        d¬«      5  |j                  d«       d d d «       y # 1 sw Y   �Œ9xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒÝxY w# 1 sw Y   Œ˜xY w# 1 sw Y   ŒœxY w# 1 sw Y   Œ}xY w# 1 sw Y   y xY w)Nr   rÍ   Útest_fs_limited_userÚ
limited123r°   r²   r³   )rÏ   rÐ   r·   r¸   zexisting-bucket/testzBucket 'new-bucket' not found©Úmatchz
new-bucketzWould delete bucketzexisting-bucketzRequest ID:zexisting-bucket/test-filezexisting-bucket/test-file-copyznon-existing-bucket/test-fileó   testzno-delete-bucket/test-file)rÀ   rÎ   r
   Ú_minio_limited_policyrS   rÂ   Úraisesro   ÚArrowIOErrorrU   rÁ   rj   r|   Úwriter_   )rÓ   rÎ   rÆ   rÇ   Ú_rŽ   Úfs          r   Ú+test_s3fs_limited_permissions_create_bucketr7    sÅ  € å'Ü˜yÔ*?Ø5°|ôEà  Ñ.Ñ€Dˆ$��1á	Ø)ØØ!˜F ! D 6Ð*Øô	
€Bð ‡M�MÐ(Ô)ä	�‰”r—‘Ð.MÔ	Nñ $Ø
�‰�lÔ#÷$ô 
�‰”r—‘Ð.CÔ	Dñ )Ø
�‰Ð'Ô(÷)ô 
�‰”w mÔ	4ñ TØ
�‰Ð0Ð2RÔS÷Tô 
�‰”r—‘¨mÔ	<ñ Ø×"Ñ"Ð#BÓCð 	ÀqØ�G‰G�GÔ÷	÷ð
 
×	Ñ	Ð;Ó	<ð ÀØ	�‰�Ô÷ô 
�‰”w mÔ	4ñ 5Ø
�‰Ð3Ô4÷5ð 5÷#$ñ $ú÷)ñ )ú÷Tð Tú÷	ð 	ú÷ð ú÷
ð ú÷5ð 5ús`   Á*F3Â)G ÃGÄG%Ä0GÅG%Å#G1ÆG=Æ3F=Ç G
ÇGÇG"	ÇG%Ç%G.Ç1G:Ç=Hc                  ó\  — t        j                  dt        j                  «      } t	        d«      }|j
                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  t        j                  k(  sJ ‚|j                  �J ‚t        |«       t	        dt        j                  dd¬«      }|j
                  dk(  sJ ‚|j                  dk(  sJ ‚|j                  t        j                  k(  sJ ‚|j                  dk(  sJ ‚|j                  d	k(  sJ ‚t        |«       t	        d
t        j                  | ¬«      }|j
                  d
k(  sJ ‚|j                  d
k(  sJ ‚|j                  t        j                  k(  sJ ‚|j                  �J ‚|j                   | k(  sJ ‚|j                  dk(  sJ ‚t        |«       y )NéRü�]úfoo/barÚbarzfoo/baz.txtrF   g   `×A)ÚtyperG   r  zbaz.txtl    t<…|+. Úfoo)r<  r  l    4Ù …|+. )r   Úfromtimestampr   Úutcr   r3   Ú	base_namer<  r   ÚUnknownrG   r  r;   r  r  r<   r  )ÚdtrA   s     r   Útest_file_info_constructorrC  2  s�  € Ü	×	Ñ	 
¬H¯L©LÓ	9€Bä�IÓ€DØ�9‰9˜	Ò!Ð!Ð!Ø�>‰>˜UÒ"Ð"Ð"Ø�9‰9œ×(Ñ(Ò(Ð(Ð(Ø�9‰9ÐÐÐÜ�tÔä�M¬¯©¸CØ&ô(€Dà�9‰9˜Ò%Ð%Ð%Ø�>‰>˜YÒ&Ð&Ð&Ø�9‰9œŸ™Ò%Ð%Ð%Ø�9‰9˜ÒÐÐØ�=‰=Ð/Ò/Ð/Ð/Ü�Ôä�E¤× 2Ñ 2¸"Ô=€DØ�9‰9˜ÒÐÐØ�>‰>˜UÒ"Ð"Ð"Ø�9‰9œ×*Ñ*Ò*Ð*Ð*Ø�9‰9ÐÐÐØ�:‰:˜ÒÐÐØ�=‰=Ð/Ò/Ð/Ð/Ü�Õr!   c                  ót   — t        j                  t        «      5  t        «        d d d «       y # 1 sw Y   y xY wr   )rÂ   r2  Ú	TypeErrorr   r.   r!   r   Ú'test_cannot_instantiate_base_filesystemrF  O  s(   € Ü	�‰”yÓ	!ñ ÜŒ÷÷ ñ ús   š.®7c                  ó  — t        «       } t        «       }t        «       }| j                  | «      sJ ‚| j                  |«      sJ ‚t        j                  t
        «      5  | j                  d«       d d d «       | | cxk(  r|k(  sJ ‚ J ‚| dk7  sJ ‚||k(  sJ ‚|t        «       k7  sJ ‚t        d| «      t        d| «      k(  sJ ‚t        d| «      t        d|«      k7  sJ ‚t        d| «      t        d| «      k7  sJ ‚y # 1 sw Y   ŒˆxY w)NÚstringé   ú/basez/other)r   r   ÚequalsrÂ   r2  rE  r   )Úfs0Úfs1Úfs2s      r   Útest_filesystem_equalsrO  T  sÿ   € Ü
Ó
€CÜ
Ó
€CÜ
Ó
€Cà�:‰:�cŒ?Ðˆ?Ø�:‰:�cŒ?Ðˆ?Ü	�‰”yÓ	!ñ Ø�
‰
�8Ô÷à�#Ô˜ÒÐÑÐÐØ�!Š8€Oˆ8à�#Š:Ðˆ:Ø”/Ó#Ò#Ð#Ð#ä˜W cÓ*Ô.?ÀÈÓ.MÒMÐMÐMÜ˜W cÓ*Ô.?ÀÈÓ.MÒMÐMÐMÜ˜W cÓ*Ô.?ÀÈ#Ó.NÒNÐNÑN÷ð ús   ÁC7Ã7D c                 óŽ   — t        j                  t        d¬«      5  | j                  d «       d d d «       | €J ‚y # 1 sw Y   ŒxY w)Nzgot NoneTyper.  )rÂ   r2  rE  rK  r&  s    r   Útest_filesystem_equals_nonerQ  h  s<   € Ü	�‰”y¨Ô	7ñ Ø
�	‰	�$Œ÷ð ˆ>Ð‰>÷ð ús	   œ;»Ac                  óP  — t        «       } t        d| «      }|j                  dk(  sJ ‚|j                  | k(  sJ ‚t	        |«      j                  d«      sJ ‚t        dt        «       «      }|j                  dk(  sJ ‚|j                  | k(  sJ ‚t	        |«      j                  d«      sJ ‚y )NrJ  z/base/zHSubTreeFileSystem(base_path=/base/, base_fs=<pyarrow._fs.LocalFileSystemz/another/base/zPSubTreeFileSystem(base_path=/another/base/, base_fs=<pyarrow._fs.LocalFileSystem)r   r   Ú	base_pathÚbase_fsÚreprÚ
startswith)r–   Úsubfss     r   Útest_subtree_filesystemrX  o  s»   € ÜÓ€Gä˜g wÓ/€EØ�?‰?˜hÒ&Ð&Ð&Ø�=‰=˜GÒ#Ð#Ð#Ü�‹;×!Ñ!ð #Iô Jð Jð Jô Ð.´Ó0AÓB€EØ�?‰?Ð.Ò.Ð.Ð.Ø�=‰=˜GÒ#Ð#Ð#Ü�‹;×!Ñ!ð #Jô Kð Kñ Kr!   c                 ó   — | j                   j                  d«      d   dk(  rt        j                  d¬«       |j	                  | «      }|j                  |«      }t        |t        «      sJ ‚|j                  | «      sJ ‚y )Nú::éÿÿÿÿÚmockú"MockFileSystem is not serializabler"  )	r$  ÚsplitrÂ   r%  ÚdumpsÚloadsr$   r   rK  )rŽ   Úpickle_moduleÚ
serializedÚrestoreds       r   Útest_filesystem_picklingrd    sm   € Ø	‡|�|×Ñ˜$Ó Ñ# vÒ-Ü�‰Ð@ÕAà×$Ñ$ RÓ(€JØ×"Ñ" :Ó.€HÜ�h¤
Ô+Ð+Ð+Ø�?‰?˜2ÔÐÑr!   c                 óÀ  — | j                   j                  d«      d   dk(  rt        j                  d¬«       t	        | «        |d«      } |d«      } |d«      }| j                  |«       | j                  |«      5  	 d d d «       | j                  |«      5 }|j                  d	«       d d d «       |j                  |j                  | «      «      }|j                  |||g«      \  }}	}
|j                  t        j                  k(  sJ ‚|	j                  t        j                  k(  sJ ‚|
j                  t        j                  k(  sJ ‚y # 1 sw Y   ŒÊxY w# 1 sw Y   Œ«xY w)
NrZ  r[  r\  r]  r"  ú	a/aa/aaa/úa/bbúc.txtr0  )r$  r^  rÂ   r%  r'  rS   r|   r4  r`  r_  rB   r<  r   r<   r;   )rŽ   r�   ra  ÚaaaÚbbÚcÚfprc  Úaaa_infoÚbb_infoÚc_infos              r   Ú,test_filesystem_is_functional_after_picklingrp  ‰  s0  € Ø	‡|�|×Ñ˜$Ó Ñ# vÒ-Ü�‰Ð@ÕAÜ�RÔá
�Ó
€CÙ	�‹€BÙˆw‹€Aà‡M�M�#ÔØ	×	Ñ	˜rÓ	"ñ Ø÷à	×	Ñ	˜qÓ	!ð  RØ
�‰�Ô÷ð ×"Ñ" =×#6Ñ#6°rÓ#:Ó;€HØ (× 6Ñ 6¸¸RÀ°|Ó DÑ€Hˆg�vØ�=‰=œH×.Ñ.Ò.Ð.Ð.Ø�<‰<œ8Ÿ=™=Ò(Ð(Ð(Ø�;‰;œ(Ÿ-™-Ò'Ð'Ñ'÷ð ú÷ð ús   Á=EÂEÅEÅEc                  óp   — t        «       } | j                  dk(  sJ ‚t        «       } | j                  dk(  sJ ‚y )NÚlocalr\  )r   r$  r   r&  s    r   Útest_type_namers  Ÿ  s6   € Ü	Ó	€BØ�<‰<˜7Ò"Ð"Ð"Ü	Ó	€BØ�<‰<˜6Ò!Ð!Ñ!r!   c                 ó0   — | j                  d«      dk(  sJ ‚y )Nr=  )r4   r&  s    r   Útest_normalize_pathru  ¦  s   € ð ×Ñ˜UÓ# uÒ,Ð,Ñ,r!   c           	      óø   —  G d„ d«      }dd |«       t        «       i g d„ t        j                  «       g}|D ]5  }t        j                  t
        «      5  | j                  |«       d d d «       Œ7 y # 1 sw Y   ŒBxY w)Nc                   ó   — e Zd Zy)ú-test_non_path_like_input_raises.<locals>.PathN)r�   r‚   rƒ   r.   r!   r   ÚPathrx  ­  s   „ Ør!   ry  é   gš™™™™™ñ?c                   ó   — y)Nrz  r.   r.   r!   r   r‹   z1test_non_path_like_input_raises.<locals>.<lambda>°  s   � r!   )ÚtupleÚpathlibry  rÂ   r2  rE  rS   )rŽ   ry  Úinvalid_pathsr3   s       r   Útest_non_path_like_input_raisesr  ¬  sr   € ÷ñ ð ˜™T›V¤U£W¨b°"±iÜ—\‘\“^ð%€Màò  ˆÜ�]‰]œ9Ó%ñ 	 Ø�M‰M˜$Ô÷	 ð 	 ñ ÷	 ð 	 ús   ÁA0Á0A9	c                 ó¦  —  |d«      } |d«      } |d«      } |d«      }| j                  |«       | j                  |«      5  	 d d d «       | j                  |«      5 }|j                  d«       d d d «       | j                  ||||g«      \  }}}	}
|j                  |k(  sJ ‚dt        |«      v sJ ‚|j                  dk(  sJ ‚| j                  dk(  r|j                  t        j                  k(  s0J ‚|j                  t        j                  k(  sJ ‚d	t        |«      v sJ ‚|j                  �J ‚t        |«       |j                  t        |«      k(  sJ ‚|j                  d
k(  sJ ‚|j                  dk(  sJ ‚|j                  t        j                   k(  sJ ‚dt        |«      v sJ ‚|j                  dk(  sJ ‚| j                  dvrt#        |«       |	j                  t        |«      k(  sJ ‚|	j                  dk(  sJ ‚|	j                  dk(  sJ ‚|	j                  t        j                   k(  sJ ‚dt        |	«      v sJ ‚|	j                  dk(  sJ ‚| j                  dvrt#        |	«       |
j                  t        |«      k(  sJ ‚|
j                  dk(  sJ ‚|
j                  dk(  sJ ‚|
j                  t        j                  k(  sJ ‚|
j                  �J ‚|
j$                  �J ‚dt        |
«      v sJ ‚t'        |
«       | j                  |«      }|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚y # 1 sw Y   �ŒöxY w# 1 sw Y   �ŒØxY w)Nrf  rg  rh  Úzzzr0  ri  Ú r!  zFileType.Directoryrj  zFileType.Filer   )zpy::fsspec+memoryr!  ÚtxtrI  zFileType.NotFound)rS   r|   r4  rB   r3   rU  Ú	extensionr$  r<  r   r=   r<   rG   r  rª   r@  r;   r  r  r  )rŽ   r�   ri  rj  rk  r�  rl  rm  rn  ro  Úzzz_infoÚ	aaa_info2s               r   Útest_get_file_infor‡  ·  s6  € Ù
�Ó
€CÙ	�‹€BÙˆw‹€AÙ
�‹-€Cà‡M�M�#ÔØ	×	Ñ	˜rÓ	"ñ Ø÷à	×	Ñ	˜qÓ	!ð  RØ
�‰�Ô÷ð +-×*:Ñ*:¸CÀÀQÈÐ;LÓ*MÑ'€Hˆg�v˜xà�=‰=˜CÒÐÐØ”D˜“NÑ"Ð"Ð"Ø×Ñ Ò#Ð#Ð#Ø	‡|�|Ð1Ò1à�}‰}¤× 1Ñ 1Ò1Ð1Ð1à�}‰}¤× 2Ñ 2Ò2Ð2Ð2Ø#¤t¨H£~Ñ5Ð5Ð5Ø�=‰=Ð Ð Ð Ü˜(Ô#à�<‰<œ3˜r›7Ò"Ð"Ð"Ø×Ñ Ò$Ð$Ð$Ø×Ñ Ò"Ð"Ð"Ø�<‰<œ8Ÿ=™=Ò(Ð(Ð(Øœd 7›mÑ+Ð+Ð+Ø�<‰<˜1ÒÐÐØ	‡|�|ÐLÑLÜ�GÔà�;‰;œ#˜a›&Ò Ð Ð Ø×Ñ˜wÒ&Ð&Ð&Ø×Ñ˜uÒ$Ð$Ð$Ø�;‰;œ(Ÿ-™-Ò'Ð'Ð'Øœd 6›lÑ*Ð*Ð*Ø�;‰;˜!ÒÐÐØ	‡|�|ÐLÑLÜ�FÔà�=‰=œC ›HÒ$Ð$Ð$Ø×Ñ Ò&Ð&Ð&Ø×Ñ Ò#Ð#Ð#Ø�=‰=œH×-Ñ-Ò-Ð-Ð-Ø�=‰=Ð Ð Ð Ø�>‰>Ð!Ð!Ð!Ø¤$ x£.Ñ0Ð0Ð0Ü�xÔ ð × Ñ  Ó%€IØ�=‰=˜IŸN™NÒ*Ð*Ð*Ø�=‰=˜IŸN™NÒ*Ð*Ñ*÷cñ ú÷ñ ús   ÁL9ÁMÌ9MÍMc                 ó~  —  |d«      } |d«      } |d«      } |d«      } |d«      } |d«      }	 | j                  |«       | j                  |«      5  	 d d d «       | j                  |«      5  	 d d d «       | j                  |«       | j                  |«      5  	 d d d «       | j                  |«       t        |dd¬	«      }|j                  |k(  sJ ‚| j	                  |«      }	| j
                  d
k(  rt        |	«      dk(   nt        |	«      dk(  sJ ‚|	D �]	  }
|
j                  j                  |«      s6|
j                  j                  |«      s|
j                  j                  |«      r|
j                  t        j                  k(  s�J ‚|
j                  j                  d«      j                  |«      s*|
j                  j                  d«      j                  |«      r|
j                  t        j                  k(  sJ ‚t        d|
j                  › �«      ‚t        |
«       �Œ t        |d¬«      }| j	                  |«      }	| j
                  d
k(  rt        |	«      dk(  sJ ‚t        |	«      dk(  sJ ‚| j!                  |«       y # 1 sw Y   �Œ.xY w# 1 sw Y   �Œ xY w# 1 sw Y   �ŒxY w# | j!                  |«       w xY w)Nzselector-dir/zselector-dir/test_file_azselector-dir/test_file_bzselector-dir/test_dir_az#selector-dir/test_dir_a/test_file_czselector-dir/test_dir_bFT)rK   rM   r!  rI  é   rW   zunexpected path ©rM   é   )rS   r|   r   rJ   rB   r$  Úlenr3   Úendswithr<  r   r;   Úrstripr<   rZ   r  rU   )rŽ   r�   rJ   Úfile_aÚfile_bÚdir_aÚfile_cÚdir_brN   rO   rA   s              r   Ú test_get_file_info_with_selectorr”  ò  sr  € Ù�oÓ&€HÙÐ.Ó/€FÙÐ.Ó/€FÙÐ,Ó-€EÙÐ9Ó:€FÙÐ,Ó-€Eð- Ø
�‰�hÔØ×"Ñ" 6Ó*ñ 	Ø÷	à×"Ñ" 6Ó*ñ 	Ø÷	à
�‰�eÔØ×"Ñ" 6Ó*ñ 	Ø÷	à
�‰�eÔô   ¸%Ø*.ô0ˆà× Ñ  HÒ,Ð,Ð,à× Ñ  Ó*ˆØ�<‰<Ð5Ò5ä�‹J˜!‹Oä�u“: ’?Ð"�?àó 		(ˆDØ—	‘	×"Ñ" 6Ô*¨d¯i©i×.@Ñ.@ÀÔ.HØ—I‘I×&Ñ& vÔ.Ø—y‘y¤H§M¡MÒ1Ð1Ð1Ø—)‘)×"Ñ" 3Ó'×0Ñ0°Ô7Ø—)‘)×"Ñ" 3Ó'×0Ñ0°Ô7Ø—y‘y¤H×$6Ñ$6Ò6Ð6Ð6ä Ð#3°D·I±I°;Ð!?Ó@Ð@Ü! $Ö'ð		(ô   °EÔ:ˆà× Ñ  Ó*ˆØ�<‰<Ð5Ò5ä�u“: ’?Ð"�?ä�u“: ’?Ð"�?ð 	�‰�hÕ÷W	ñ 	ú÷	ñ 	ú÷	ñ 	ûðL 	�‰�hÕúsT   ²"J) ÁJÁJ) Á/JÁ1*J) ÂJÂGJ) ÊJÊJ) ÊJÊJ) ÊJ&Ê!J) Ê)J<c                 óX  — t        | «        |d«      }t        j                  t        j                  «      5  | j                  |«       d d d «       | j                  |«       | j                  |«        |d«      }| j                  |d¬«       | j                  |«       y # 1 sw Y   ŒXxY w)Nztest-directory/zdeeply/nested/test-directory/TrŠ  )r'  rÂ   r2  ro   r3  rU   rS   )rŽ   r�   Úds      r   Útest_create_dirr—  *  s‰   € ô �RÔÙÐ Ó!€Aä	�‰”r—‘Ó	'ñ Ø
�‰�aÔ÷ð ‡M�M�!ÔØ‡M�M�!ÔáÐ.Ó/€AØ‡M�M�!˜t€MÔ$Ø‡M�M�!Õ÷ð ús   ·B Â B)c                 ó¢  — t        | «        |d«      } |d«      }| j                  |«       | j                  |«       t        j                  t
        j                  «      5  | j                  |«       d d d «       t        j                  t
        j                  «      5  | j                  |«       d d d «       y # 1 sw Y   ŒGxY w# 1 sw Y   y xY w)Nú
directory/údirectory/nested/)r'  rS   rU   rÂ   r2  ro   r3  ©rŽ   r�   r–  Únds       r   Útest_delete_dirr�  ;  sž   € Ü�RÔáˆ|Ó€AÙ	Ð#Ó	$€Bà‡M�M�"ÔØ‡M�M�!ÔÜ	�‰”r—‘Ó	'ñ Ø
�‰�bÔ÷ä	�‰”r—‘Ó	'ñ Ø
�‰�aÔ÷ð ÷ð ú÷ð ús   Á!B9ÂCÂ9CÃCc                 ód  — t        | «        |d«      } |d«      }| j                  |«       | j                  |«       | j                  |«       | j                  |«      }|j                  t
        j                  k(  sJ ‚ |d«      } |d«      } |d«      }| j                  |«       | j                  |«       | j                  |«      5 }|j                  d«       d d d «       | j                  |«       | j                  |«      }|j                  t
        j                  k(  sJ ‚y # 1 sw Y   ŒKxY w)Nr™  rš  Ú
directory2zdirectory2/nestedzdirectory2/nested/target-fileó   data)	r'  rS   rU   rB   r<  r   r=   r|   r4  )rŽ   r�   r–  rœ  Údir_infor6  Úss          r   Ú$test_delete_dir_with_explicit_subdirr£  I  s  € ô
 �RÔáˆ|Ó€AÙ	Ð#Ó	$€Bð ‡M�M�!ÔØ‡M�M�"ÔØ‡M�M�!ÔØ×Ñ Ó"€HØ�=‰=œH×-Ñ-Ò-Ð-Ð-ñ 	ˆ|Ó€AÙ	Ð#Ó	$€BÙÐ.Ó/€Aà‡M�M�!ÔØ‡M�M�"ÔØ	×	Ñ	˜qÓ	!ð  QØ	�‰�Ô÷ð ‡M�M�!ÔØ×Ñ Ó"€HØ�=‰=œH×-Ñ-Ò-Ð-Ñ-÷ð ús   Ã
D&Ä&D/c                 ó|  — t        | «        |d«      } |d«      }| j                  |«       | j                  |«       t        j                  t
        j                  «      5  | j                  |«       d d d «       | j                  |d¬«       t        j                  t
        j                  «      5  | j                  |«       d d d «       | j                  |«       t        j                  t
        j                  «      5  | j                  |«       d d d «       y # 1 sw Y   Œ¨xY w# 1 sw Y   ŒdxY w# 1 sw Y   y xY w)Nr™  rš  T)r[   )r'  rS   rX   rÂ   r2  ro   r3  rU   r›  s       r   Útest_delete_dir_contentsr¥  i  sò   € Ü�RÔáˆ|Ó€AÙ	Ð#Ó	$€Bà‡M�M�"ÔØ×Ñ˜1ÔÜ	�‰”r—‘Ó	'ñ Ø
�‰�bÔ÷à×Ñ˜2¨dÐÔ3Ü	�‰”r—‘Ó	'ñ #Ø
×Ñ˜rÔ"÷#à‡M�M�!ÔÜ	�‰”r—‘Ó	'ñ Ø
�‰�aÔ÷ð ÷ð ú÷#ð #ú÷ð ús$   Á!DÂ1D&Ã?D2ÄD#Ä&D/Ä2D;c                 ó  — | d   }| d   } |d«      } |d«      }|j                  |«       t        j                  t        j                  «      5  |j                  d«       d d d «       t        j                  t        j                  «      5  |j                  d«       d d d «       t        j                  t        j                  «      5  |j                  d«       d d d «       |j                  dd¬	«       |j                  dd¬	«       |j                  dd¬	«       t        j                  t        j                  «      5  |j                  |«       d d d «       y # 1 sw Y   ŒúxY w# 1 sw Y   ŒÉxY w# 1 sw Y   Œ˜xY w# 1 sw Y   y xY w)
NrŽ   r�   r™  rš  r‚  rW   ú//T©Úaccept_root_dir)rS   rÂ   r2  ro   ÚArrowInvalidrX   r3  rU   )r½   rŽ   r�   r–  rœ  s        r   Ú_check_root_dir_contentsr«  {  s@  € Ø	�‰€BØ�HÑ€Fáˆ|Ó€AÙ	Ð#Ó	$€Bà‡M�M�"ÔÜ	�‰”r—‘Ó	'ñ #Ø
×Ñ˜rÔ"÷#ä	�‰”r—‘Ó	'ñ $Ø
×Ñ˜sÔ#÷$ä	�‰”r—‘Ó	'ñ %Ø
×Ñ˜tÔ$÷%ð ×Ñ˜2¨tÐÔ4Ø×Ñ˜3°ÐÔ5Ø×Ñ˜4°ÐÔ6ä	�‰”r—‘Ó	'ñ Ø
�‰�aÔ÷ð ÷#ð #ú÷$ð $ú÷%ð %ú÷ð ús0   ÁEÂE&Ã	E2Ä?E>ÅE#Å&E/Å2E;Å>Fc                 ó0   — t        | «       t        |«       y r   )r«  )rŸ   r¢   s     r   Útest_delete_root_dir_contentsr­  ’  s   € Ü˜VÔ$Ü˜YÕ'r!   c                 óÚ   —  |d«      } |d«      }| j                  |«      5  	 d d d «       | j                  ||«       | j                  |«       | j                  |«       y # 1 sw Y   Œ>xY w)Nztest-copy-source-fileztest-copy-target-file)r|   rj   r_   ©rŽ   r�   r¢  Úts       r   Útest_copy_filer±  —  sf   € ÙÐ&Ó'€AÙÐ&Ó'€Aà	×	Ñ	˜qÓ	!ñ Ø÷ð ‡L�L��AÔØ‡N�N�1ÔØ‡N�N�1Õ÷ð ús   ¢A!Á!A*c                 óÐ  — t        | d«        |d«      } |d«      }| j                  |«       |ra| j                  ||«       t        j                  t
        j                  «      5  | j                  |«       d d d «       | j                  |«       y t        j                  t
        j                  «      5  | j                  ||«       d d d «       y # 1 sw Y   ŒZxY w# 1 sw Y   y xY w)Nú.Not implemented yet in for Azure. See GH-40025zsource-dir/ztarget-dir/)r*  rS   rf   rÂ   r2  ro   r3  rU   )rŽ   r�   r�   r¢  r°  s        r   Útest_move_directoryr´  £  s³   € äˆrÐCÔDñ 	ˆ}Ó€AÙˆ}Ó€Aà‡M�M�!ÔáØ
�‰��1ŒÜ�]‰]œ2Ÿ?™?Ó+ñ 	Ø�M‰M˜!Ô÷	à
�‰�aÕä�]‰]œ2Ÿ?™?Ó+ñ 	Ø�G‰G�A�qŒM÷	ð 	÷		ð 	ú÷	ð 	ús   Á%CÂ4CÃCÃC%c                 óx  — t        | «       t        | d«        |d«      } |d«      }| j                  |«      5  	 d d d «       | j                  ||«       t	        j
                  t        j                  «      5  | j                  |«       d d d «       | j                  |«       y # 1 sw Y   ŒjxY w# 1 sw Y   Œ'xY w)Nr³  ztest-move-source-fileztest-move-target-file)	r'  r*  r|   rf   rÂ   r2  ro   r3  r_   r¯  s       r   Útest_move_filer¶  ·  s¡   € ô �RÔô ˆrÐCÔDáÐ&Ó'€AÙÐ&Ó'€Aà	×	Ñ	˜qÓ	!ñ Ø÷ð ‡G�GˆAˆq„MÜ	�‰”r—‘Ó	'ñ Ø
�‰�qÔ÷à‡N�N�1Õ÷ð ú÷ð ús   ¹B$Á8B0Â$B-Â0B9c                 óè  —  |d«      }| j                  |«      5  	 d d d «       | j                  |«       t        j                  t        j
                  «      5  | j                  |«       d d d «        |d«      }| j                  |«        |d«      }| j                  |«      5 }|j                  d«       d d d «       | j                  |«       y # 1 sw Y   ŒµxY w# 1 sw Y   ŒsxY w# 1 sw Y   Œ3xY w)Nztest-delete-target-fileztest-delete-nestedztest-delete-nested/target-filer   )	r|   r_   rÂ   r2  ro   r3  rS   r4  rU   )rŽ   r�   r‰   r–  r6  r¢  s         r   Útest_delete_filer¸  Ë  sÕ   € ÙÐ(Ó)€AØ	×	Ñ	˜qÓ	!ñ Ø÷ð ‡N�N�1ÔÜ	�‰”r—‘Ó	'ñ Ø
�‰�qÔ÷ñ 	Ð#Ó$€AØ‡M�M�!ÔÙÐ/Ó0€AØ	×	Ñ	˜qÓ	!ð  QØ	�‰�Ô÷ð ‡M�M�!Õ÷ð ú÷ð ú÷ð ús#   šCÁCÂ$C(ÃCÃC%Ã(C1c                 ó   — | S r   r.   )Úvs    r   Úidentityr»  Ý  s   € Ø€Hr!   )ÚcompressionÚbuffer_sizeÚ
compressoré@   Úgzipé   c                 ó  —  |d«      }ddz  }| j                  |«      5 }|j                   ||«      «       d d d «       | j                  |||«      5 }|j                  «       }d d d «       |k(  sJ ‚y # 1 sw Y   Œ=xY w# 1 sw Y   ŒxY w)Nzopen-input-streams   some data for reading
é   )r|   r4  rs   Úread)	rŽ   r�   r¼  r½  r¾  r‰   rr   r¢  Úresults	            r   Útest_open_input_streamrÆ  á  s“   € ñ 	Ð"Ó#€Aà%¨Ñ+€DØ	×	Ñ	˜qÓ	!ð " QØ	�‰‘
˜4Ó Ô!÷"ð 
×	Ñ	˜a ¨kÓ	:ð ¸aØ—‘“ˆ÷ð �TŠ>Ð‰>÷"ð "ú÷ð ús   ŸA3ÁA?Á3A<Á?Bc                 óÄ  —  |d«      }ddz  }| j                  |«      5 }|j                  |«       d d d «       t        d«      dz  }| j                  |«      5 }|j	                  «       }d d d «       |k(  sJ ‚| j                  |«      5 }|j                  |«       |j	                  «       }d d d «       |||d  k(  sJ ‚y # 1 sw Y   ŒŽxY w# 1 sw Y   ŒbxY w# 1 sw Y   Œ,xY w)Nzopen-input-fileó	   some dataé   rÃ  )r|   r4  rŒ  ru   rÄ  Úseek)rŽ   r�   r‰   rr   r¢  Ú	read_fromr6  rÅ  s           r   Útest_open_input_filerÌ  ø  sç   € ÙÐ Ó!€Aà˜$Ñ€DØ	×	Ñ	˜qÓ	!ð  QØ	�‰�Œ÷ô �LÓ! CÑ'€IØ	×	Ñ	˜AÓ	ð  !Ø—‘“ˆ÷à�TŠ>Ðˆ>à	×	Ñ	˜AÓ	ð  !Ø	�‰ˆyÔØ—‘“ˆ÷ð �T˜)˜*Ð%Ò%Ð%Ñ%÷ð ú÷ð ú÷ð ús#   ŸB>ÁC
Â	"CÂ>CÃ
CÃCc                 ó’   —  |d«      }t        j                  t        «      5  | j                  |«       d d d «       y # 1 sw Y   y xY w)Nzopen-input-stream-not-found)rÂ   r2  rL   rs   )rŽ   r�   r‰   s      r   Ú test_open_input_stream_not_foundrÎ    s=   € áÐ,Ó-€AÜ	�‰Ô(Ó	)ñ  Ø
×Ñ˜QÔ÷ ÷  ñ  ús	   ¢=½A)r¼  r½  Údecompressorc                 ó   —  |d«      }ddz  }| j                  |||«      5 }|j                  |«       d d d «       | j                  |||«      5 }|j                  t	        |«      «      |k(  sJ ‚	 d d d «       y # 1 sw Y   ŒFxY w# 1 sw Y   y xY w)Nzopen-output-streams   some data for writingrÉ  )r|   r4  rs   rÄ  rŒ  )rŽ   r�   r¼  r½  rÏ  r‰   rr   r6  s           r   Útest_open_output_streamrÑ    s˜   € ñ 	Ð#Ó$€Aà# dÑ*€DØ	×	Ñ	˜q +¨{Ó	;ð ¸qØ	�‰�Œ÷ð 
×	Ñ	˜a ¨kÓ	:ð )¸aØ�v‰v”c˜$“iÓ  DÒ(Ð(Ñ(÷)ð )÷ð ú÷)ð )ús   ¡A8Á BÁ8BÂB)r¼  r½  r¾  rÏ  c                 ó.  —  |d«      } |d«      }| j                  |«      5 }	|	j                  |«       d d d «       |rh| j                  |||¬«      5 }
|
j                  d«       d d d «       | j                  |«      5 }
|
j	                  «       }d d d «        |«      }|dk(  sJ ‚y t        j                  t        j                  «      5  | j                  |||¬«       d d d «       y # 1 sw Y   Œ´xY w# 1 sw Y   Œ�xY w# 1 sw Y   ŒrxY w# 1 sw Y   y xY w)Nzopen-append-streams   already existing)r¼  r½  s   
newly addeds   already existing
newly added)	r|   r4  r   rs   rÄ  rÂ   r2  ro   ÚArrowNotImplementedError)rŽ   r�   r¼  r½  r¾  rÏ  r‘   r‰   Úinitialr¢  r6  rÅ  s               r   Útest_open_append_streamrÕ  (  s"  € ñ 	Ð#Ó$€AáÐ,Ó-€GØ	×	Ñ	˜qÓ	!ð  QØ	�‰�Ô÷ñ Ø×"Ñ" 1°+Ø/:ð #ó <ð 	&Ø?@Ø�G‰GÐ$Ô%÷	&ð ×!Ñ! !Ó$ð 	¨Ø—V‘V“XˆF÷	ñ ˜fÓ%ˆØÐ9Ò9Ð9Ñ9ä�]‰]œ2×6Ñ6Ó7ñ 	;Ø×!Ñ! !°Ø.9ð "ô ;÷	;ð 	;÷ð ú÷	&ð 	&ú÷	ð 	ú÷	;ð 	;ús/   ¢C'ÁC3Á=C?Ã	DÃ'C0Ã3C<Ã?DÄDc                 óè  —  |d«      }ddi}d}| j                  ||¬«      5 }|j                  |«       d d d «       | j                  |«      5 }|j                  «       |k(  sJ ‚|j	                  «       }d d d «       | j
                  dv sd| j
                  v r=t        | d«       |j                  «       D ]  \  }}|   |j                  «       k(  rŒJ ‚ y i k(  sJ ‚y # 1 sw Y   Œ©xY w# 1 sw Y   ŒvxY w)	Nzopen-output-stream-metadataúContent-Typezx-pyarrow/testrÈ  ©r{   )rÌ   r­   r)  r\  zWAzure filesystem currently only returns system metadata not user metadata. See GH-40026)	r|   r4  rs   rÄ  r{   r$  r*  Úitemsrn   )	rŽ   r�   r‰   r{   rr   r6  Úgot_metadataÚkrº  s	            r   Ú test_open_output_stream_metadatarÜ  J  s  € ÙÐ,Ó-€AØÐ 0Ð1€Hà€DØ	×	Ñ	˜q¨8Ð	Ó	4ð ¸Ø	�‰�Œ÷ð 
×	Ñ	˜aÓ	 ð $ AØ�v‰v‹x˜4ÒÐÐØ—z‘z“|ˆ÷$ð 
‡|�|Ð,Ñ,°¸"¿,¹,Ñ0FäØð %ô	&ð —N‘NÓ$ò 	1‰DˆAˆqØ ‘? a§h¡h£jÓ0Ð0Ð0ñ	1ð ˜rÒ!Ð!Ñ!÷ð ú÷$ð $ús   ¢CÁ&C(ÃC%Ã(C1c                  ó�   — t        d¬«       t        j                  t        «      5  t        d¬«       d d d «       y # 1 sw Y   y xY w)NFr¤   )Úxxx)r   rÂ   r2  rE  r.   r!   r   Útest_localfs_optionsrß  a  s3   € ä˜UÕ#ä	�‰”yÓ	!ñ #Ü˜EÕ"÷#÷ #ñ #ús	   ¦<¼Ac                 ó¶  — | d   }t        «       5  |j                  d«       d d d «       t        «       5  |j                  d«       d d d «       t        «       5  |j                  dd¬«       d d d «       t        «       5  |j	                  d«       d d d «       t        «       5  |j                  d«       d d d «       t        «       5  |j                  dd«       d d d «       t        «       5  |j                  dd«       d d d «       y # 1 sw Y   ŒæxY w# 1 sw Y   ŒÎxY w# 1 sw Y   Œ´xY w# 1 sw Y   ŒœxY w# 1 sw Y   Œ„xY w# 1 sw Y   ŒkxY w# 1 sw Y   y xY w)NrŽ   z/non/existent/filez/non/existent/dirFrŠ  z/non/existentz/xxx)r   rs   r|   rS   rU   r_   rf   rj   )r–   rŽ   s     r   Útest_localfs_errorsrá  i  s4  € ð 
�‰€BÜ	Ó	 ñ 3Ø
×ÑÐ1Ô2÷3ä	Ó	 ñ 4Ø
×ÑÐ2Ô3÷4ä	Ó	 ñ <Ø
�‰Ð)°UˆÔ;÷<ä	Ó	 ñ +Ø
�‰Ð)Ô*÷+ä	Ó	 ñ ,Ø
�‰Ð*Ô+÷,ä	Ó	 ñ )Ø
�‰� Ô(÷)ä	Ó	 ñ .Ø
�‰�_ fÔ-÷.ð .÷3ð 3ú÷4ð 4ú÷<ð <ú÷+ð +ú÷,ð ,ú÷)ð )ú÷.ð .úsR   �D´DÁDÁ>D+Â"D7ÃEÃ+EÄDÄDÄD(Ä+D4Ä7E ÅEÅEc                 óÞ  — | d   }t        j                  t        «      }|j                  }|j	                  |j                  «       |j                  «       g«      \  }}|j                  |j                  «       j                  k(  sJ ‚|j                  |j                  «       j                  k(  sJ ‚t        |«       |j                  |j                  «       j                  k(  sJ ‚t        |«       y r  )r}  ry  Ú__file__ÚparentrB   r‡   rG   ÚstatÚst_sizer  Úst_mtime_nsr  )r–   rŽ   Ú	file_pathÚdir_pathr  r¡  s         r   Útest_localfs_file_inforê  }  sÇ   € Ø	�‰€Bä—‘œXÓ&€IØ×Ñ€HØ×,Ñ,¨i×.@Ñ.@Ó.BØ.6×.?Ñ.?Ó.Að.Có DÑ€Y�à�>‰>˜YŸ^™^Ó-×5Ñ5Ò5Ð5Ð5Ø×Ñ §¡Ó!1×!=Ñ!=Ò=Ð=Ð=Ü�	ÔØ×Ñ §¡£× ;Ñ ;Ò;Ð;Ð;Ü�Õr!   c                 óú   — t        j                  dt        j                  «      }t	        |«      }|j                  d«      5  	 d d d «       |j                  dg«      \  }|j                  |k(  sJ ‚y # 1 sw Y   Œ/xY w)Nr9  r=  )r   r>  r   r?  r   r|   rB   r  )rŸ   rB  rŽ   rA   s       r   Útest_mockfs_mtime_roundtriprì  ‹  sn   € Ü	×	Ñ	 
¬H¯L©LÓ	9€BÜ	˜Ó	€Bà	×	Ñ	˜uÓ	%ñ Ø÷à×Ñ˜u˜gÓ&�F€TØ�:‰:˜ÒÐÑ÷ð ús   ÁA1Á1A:c           	      óJ  — ddl m} t        j                  «       } |dd|dddd¬	«      }t	        ||«      sJ ‚|j
                  dk(  sJ ‚|j                  dk(  sJ ‚| j                  | j                  |«      «      |k(  sJ ‚ |«       }t	        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚ |d
¬«      }t	        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚ |dddœ¬«      }t	        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚t        j                  t        «      5   |d¬«       d d d «       t        j                  t        «      5   |d
d¬«       d d d «       t        j                  t        «      5   |d
d¬«       d d d «       t        j                  t        «      5   |t        j                  «       ¬«       d d d «       y # 1 sw Y   ŒŸxY w# 1 sw Y   ŒxY w# 1 sw Y   Œ_xY w# 1 sw Y   y xY w)Nr   r®   Úabczservice_account@apachezus-west2Úhttpsúlocalhost:8999r¶   )Úaccess_tokenÚtarget_service_accountÚcredential_token_expirationÚdefault_bucket_locationr¸   r·   r»   T©r¹   úauthenticated-readú
text/plain©ÚACLr×  ©Údefault_metadataÚaccess)rñ  r  )r¹   rñ  Úacct)r¹   rò  )ró  )rÀ   r¯   r   Únowr$   rô  r»   r`  r_  rÂ   r2  rZ   )ra  r¯   rB  rŽ   s       r   Útest_gcs_optionsrÿ  •  s  € å(Ü	�‰‹€BÙ	 EØ.FØ35Ø/9Ø%Ð9IØ"3ô
5€Bô �b˜-Ô(Ð(Ð(Ø×%Ñ%¨Ò3Ð3Ð3Ø�=‰=Ð-Ò-Ð-Ð-Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á	‹€BÜ�b˜-Ô(Ð(Ð(Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á	 Ô	&€BÜ�b˜-Ô(Ð(Ð(Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á	Ð0DØ9Eñ)Gô 
H€Bä�b˜-Ô(Ð(Ð(Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=ä	�‰”zÓ	"ñ -Ù 8Õ,÷-ä	�‰”zÓ	"ñ =Ù °8Õ<÷=ä	�‰”zÓ	"ñ EÙ ¸VÕD÷Eä	�‰”zÓ	"ñ BÙ´(·,±,³.ÕA÷Bð B÷-ð -ú÷=ð =ú÷Eð Eú÷Bð Bús0   Å
G5Å8HÆ$HÇHÇ5G>ÈH
ÈHÈH"c                 ó¦  — ddl m}m}m}m}  |dddddd¬	«      }t        ||«      sJ ‚|j                  dk(  sJ ‚| j                  | j                  |«      «      |k(  sJ ‚ |d
ddd¬«      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚ | |d¬«      ¬«      }t        ||«      sJ ‚ | |d¬«      ¬«      }t        ||«      sJ ‚ |d
¬«      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚||k7  sJ ‚ |d¬«      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚ |d¬«      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚ |ddddœ¬«      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚||k7  sJ ‚ |d¬«      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚| j                  | j                  |«      «       |«       k7  sJ ‚ |dd¬«      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚ |ddd¬«      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚ |dd¬«      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚ |dd¬«      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚||k7  sJ ‚ |dd¬ «      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚ |d!¬"«      }t        ||«      sJ ‚| j                  | j                  |«      «      |k(  sJ ‚| |d#¬"«      k7  sJ ‚| |«       k7  sJ ‚t        j                  t        «      5   |d¬$«       d d d «       t        j                  t        «      5   |d¬%«       d d d «       t        j                  t        «      5   |dd¬&«       d d d «       t        j                  t        «      5   |dd¬'«       d d d «       t        j                  t        «      5   |ddd(¬)«       d d d «       t        j                  t        «      5   |ddd¬*«       d d d «       t        j                  t        «      5   |d(d¬+«       d d d «       t        j                  t        «      5   |d,d-g¬.«       d d d «       t        j                  t        «      5   | |«       ¬«       d d d «       y # 1 sw Y   �ŒqxY w# 1 sw Y   �ŒSxY w# 1 sw Y   �Œ4xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒôxY w# 1 sw Y   ŒÓxY w# 1 sw Y   Œ³xY w# 1 sw Y   Œ’xY w# 1 sw Y   y xY w)/Nr   )ÚAwsDefaultS3RetryStrategyÚAwsStandardS3RetryStrategyrÎ   ÚS3RetryStrategyrü  r  Útokenú	us-east-2rï  rð  )rÏ   rÐ   Úsession_tokenÚregionr¸   r·   ÚroleÚsessionr  éd   )Úrole_arnÚsession_nameÚexternal_idÚload_frequencyr‰  )Úmax_attempts)Úretry_strategy)r  Trõ  )Úbackground_writesrö  r÷  rø  )r  rû  )Úallow_delayed_open)rÑ   rÒ   )rÑ   rÒ   Ú)check_directory_existence_before_creationg      à?g      Ð?)Úrequest_timeoutÚconnect_timeout)r·   Úforce_virtual_addressingzca.pem)Útls_ca_file_pathzother_ca.pem)rÏ   )rÐ   )rÏ   r  )rÐ   r  Úarn)rÏ   rÐ   r  )rÏ   rÐ   r¹   )r  r¹   r=  r;  rú  )rÀ   r  r  rÎ   r  r$   r  r`  r_  rÂ   r2  rZ   )ra  r  r  rÎ   r  rŽ   rN  s          r   Útest_s3_optionsr  »  sÖ  € ÷-ó -ñ 
 °hØ$+°KØ$Ð8Hô
J€Bô �b˜,Ô'Ð'Ð'Ø�9‰9˜Ò#Ð#Ð#Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á	˜v°IØ"&°sô
<€Bä�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=ñ 
Ù1¸qÔAô
C€Bä�b˜,Ô'Ð'Ð'á	Ù0¸aÔ@ô
B€Bä�b˜,Ô'Ð'Ð'á
 Ô
'€CÜ�c˜<Ô(Ð(Ð(Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø�"Š9Ðˆ9á	 Ô	%€BÜ�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á	¨Ô	-€BÜ�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á
¨Ø0DØ9Eñ)GôH€Cô �c˜<Ô(Ð(Ð(Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø�"Š9Ðˆ9á	¨Ô	.€BÜ�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=Ø×Ñ˜}×2Ñ2°2Ó6Ó7¹<»>ÒIÐIÐIá	¨DÈÔ	M€BÜ�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á	¨DÈØ@Dô
F€Bä�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á	 c¸4Ô	@€BÜ�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á
 t¸SÔ
A€CÜ�c˜<Ô(Ð(Ð(Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø�"Š9Ðˆ9á	Ð(8ÐSWÔ	X€BÜ�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á	 xÔ	0€BÜ�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=Ø‘¨~Ô>Ò>Ð>Ð>Ø‘“ÒÐÐä	�‰”zÓ	"ñ *Ù Õ)÷*ä	�‰”zÓ	"ñ *Ù Õ)÷*ä	�‰”zÓ	"ñ AÙ ¸Õ@÷Aä	�‰”zÓ	"ñ AÙ ¸Õ@÷Aä	�‰”zÓ	"ñ 
ÙØ¨H¸uõ	
÷
ô 
�‰”zÓ	"ñ 
ÙØ¨HÀõ	
÷
ô 
�‰”zÓ	"ñ 5Ù˜e¨tÕ4÷5ä	�‰”zÓ	"ñ 6Ù u¨e nÕ5÷6ä	�‰”zÓ	"ñ 7Ù¡OÓ$5Õ6÷7ð 7÷)*ñ *ú÷*ñ *ú÷Añ Aú÷Añ Aú÷
ð 
ú÷
ð 
ú÷5ð 5ú÷6ð 6ú÷7ð 7úsl   Ï*
U#Ð
U0Ñ U=Ñ,V
ÒVÓV#Ó2V/ÔV;ÕWÕ#U-Õ0U:Õ=VÖ
VÖV Ö#V,Ö/V8Ö;W×Wc                 ó¬  — ddl m} ddddœ}d}ddd	dœ}d
} ||¬«      }t        ||«      sJ ‚|j                  |j	                  |«      «      |k(  sJ ‚ ||¬«      }t        ||«      sJ ‚|j                  |j	                  |«      «      |k(  sJ ‚ ||¬«      }t        ||«      sJ ‚|j                  |j	                  |«      «      |k(  sJ ‚ ||¬«      }t        ||«      sJ ‚|j                  |j	                  |«      «      |k(  sJ ‚ ||¬«      } ||¬«      }	||	k(  sJ ‚|j                  |j	                  |«      «      |	k(  sJ ‚|j                  |j	                  |	«      «      |k(  sJ ‚ ||¬«      } ||¬«      }	||	k(  sJ ‚|j                  |j	                  |«      «      |	k(  sJ ‚|j                  |j	                  |	«      «      |k(  sJ ‚ ||¬«      } ||¬«      }	||	k(  sJ ‚|j                  |j	                  |«      «      |	k(  sJ ‚|j                  |j	                  |	«      «      |k(  sJ ‚ ||¬«      } ||¬«      }	||	k(  sJ ‚|j                  |j	                  |«      «      |	k(  sJ ‚|j                  |j	                  |	«      «      |k(  sJ ‚ ||¬«      } ||¬«      }	||	k(  sJ ‚|j                  |j	                  |«      «      |	k(  sJ ‚|j                  |j	                  |	«      «      |k(  sJ ‚ ||¬«      } ||¬«      }	||	k(  sJ ‚|j                  |j	                  |«      «      |	k(  sJ ‚|j                  |j	                  |	«      «      |k(  sJ ‚ ||¬«      } ||¬«      }	||	k7  sJ ‚|j                  |j	                  |«      «      |	k7  sJ ‚|j                  |j	                  |	«      «      |k7  sJ ‚ ||¬«      } ||¬«      }	||	k7  sJ ‚|j                  |j	                  |«      «      |	k7  sJ ‚|j                  |j	                  |	«      «      |k7  sJ ‚ ||¬«      } ||¬«      }	||	k7  sJ ‚|j                  |j	                  |«      «      |	k7  sJ ‚|j                  |j	                  |	«      «      |k7  sJ ‚ ||¬«      } ||¬«      }	||	k7  sJ ‚|j                  |j	                  |«      «      |	k7  sJ ‚|j                  |j	                  |	«      «      |k7  sJ ‚ ||¬«      } |«       }	||	k7  sJ ‚|j                  |j	                  |«      «      |	k7  sJ ‚|j                  |j	                  |	«      «      |k7  sJ ‚ ||¬«      } |«       }	||	k7  sJ ‚|j                  |j	                  |«      «      |	k7  sJ ‚|j                  |j	                  |	«      «      |k7  sJ ‚ ||¬«      } |«       }	||	k7  sJ ‚|j                  |j	                  |«      «      |	k7  sJ ‚|j                  |j	                  |	«      «      |k7  sJ ‚ ||¬«      } |«       }	||	k7  sJ ‚|j                  |j	                  |«      «      |	k7  sJ ‚|j                  |j	                  |	«      «      |k7  sJ ‚t        j                  t        «      5   |d¬«       d d d «       t        j                  t        «      5   |dddœ¬«       d d d «       t        j                  t        «      5   |dddœ¬«       d d d «       t        j                  t        «      5   |dddœ¬«       d d d «       t        j                  t        j                  «      5   |d¬«       d d d «       t        j                  t        j                  «      5   |ddddœ¬«       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒáxY w# 1 sw Y   Œ¿xY w# 1 sw Y   Œ�xY w# 1 sw Y   ŒtxY w# 1 sw Y   y xY w)Nr   rÍ   r³   Ú	localhosti'#  )r¸   rÆ   rÇ   zhttp://localhost:8999rï  i�  zhttps://localhost:8080)Úproxy_options)r³   r  é‚#  r  )rÆ   rÇ   )r¸   rÇ   )r¸   rÆ   zhttpsB://localhost:9000ÚhttpA)rÀ   rÎ   r$   r`  r_  rÂ   r2  rE  ÚKeyErrorro   rª  )
Úmonkeypatchra  rÎ   Úproxy_opts_1_dictÚproxy_opts_1_strÚproxy_opts_2_dictÚproxy_opts_2_strrŽ   rM  rN  s
             r   Útest_s3_proxy_optionsr%  #  s/  € å'ð $*°;ÈÑMÐØ.Ðà#*°KÈÑNÐØ/Ðñ 
Ð$5Ô	6€BÜ�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á	Ð$5Ô	6€BÜ�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=ñ 
Ð$4Ô	5€BÜ�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=á	Ð$4Ô	5€BÜ�b˜,Ô'Ð'Ð'Ø×Ñ˜}×2Ñ2°2Ó6Ó7¸2Ò=Ð=Ð=ñ Ð%6Ô
7€CÙ
Ð%6Ô
7€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?á
Ð%6Ô
7€CÙ
Ð%6Ô
7€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?ñ Ð%5Ô
6€CÙ
Ð%5Ô
6€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?á
Ð%5Ô
6€CÙ
Ð%5Ô
6€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?ñ Ð%6Ô
7€CÙ
Ð%5Ô
6€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?á
Ð%6Ô
7€CÙ
Ð%5Ô
6€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?ñ Ð%6Ô
7€CÙ
Ð%6Ô
7€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?á
Ð%6Ô
7€CÙ
Ð%5Ô
6€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?á
Ð%5Ô
6€CÙ
Ð%6Ô
7€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?á
Ð%5Ô
6€CÙ
Ð%5Ô
6€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?ñ Ð%6Ô
7€CÙ
‹.€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?á
Ð%5Ô
6€CÙ
‹.€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?á
Ð%6Ô
7€CÙ
‹.€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?á
Ð%5Ô
6€CÙ
‹.€CØ�#Š:Ðˆ:Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?ô 
�‰”yÓ	!ñ @ÙÐ#>Õ?÷@ô 
�‰”xÓ	 ñ HÙ¨KÀÑ#FÕG÷Hô 
�‰”xÓ	 ñ FÙ¨g¸tÑ#DÕE÷Fô 
�‰”xÓ	 ñ LÙ¨f¸kÑ#JÕK÷Lô 
�‰”r—‘Ó	'ñ >ÙÐ#<Õ=÷>ô 
�‰”r—‘Ó	'ñ 3Ù¨g¸{Ø,0ñ$2õ 	3÷3ð 3÷@ñ @ú÷Hð Hú÷Fð Fú÷Lð Lú÷>ð >ú÷3ð 3úsH   Ú
^Ú-^Û^&Ü	^2Ý
^>Ý6_
Þ^Þ^#Þ&^/Þ2^;Þ>_ß
_c                  ó  — ddl m}   | dd¬«      }d}t        j                  t        |¬«      5 }|j                  d«       d d d «       d	t        j                  «      v ry  | d
d¬«      }|j                  d«       y # 1 sw Y   Œ=xY w)Nr   rÍ   z
eu-north-1T)r  r¹   zúWhen getting information for bucket 'arrow-datasets': AWS Error UNKNOWN \(HTTP status 301\) during HeadBucket operation: No response body. Looks like the configured region is 'eu-north-1' while the bucket is located in 'us-east-1'.|NETWORK_CONNECTIONr.  úarrow-datasetsÚNETWORK_CONNECTIONú	us-east-1)rÀ   rÎ   rÂ   r2  rÁ   rB   rª   r   )rÎ   rŽ   ÚmsgÚexcs       r   Útest_s3fs_wrong_regionr,  °  s€   € å'ñ 
˜\°TÔ	:€Bð!€Cô
 
�‰”w cÔ	*ð +¨cØ
×ÑÐ)Ô*÷+ð œs 3§9¡9›~Ñ-Øá	˜[°DÔ	9€BØ×ÑÐ%Õ&÷+ð +ús   ®A<Á<Bc                 óh  — ddl m}  |d¬«      }t        ||«      sJ ‚| j                  | j	                  |«      «      |k(  sJ ‚ |dd¬«      }t        ||«      sJ ‚| j                  | j	                  |«      «      |k(  sJ ‚||k7  sJ ‚ |ddd	d
dd¬«      }t        ||«      sJ ‚| j                  | j	                  |«      «      |k(  sJ ‚||k7  sJ ‚ |dd¬«      }t        ||«      sJ ‚| j                  | j	                  |«      «      |k(  sJ ‚||k7  sJ ‚ |dddd¬«      }t        ||«      sJ ‚| j                  | j	                  |«      «      |k(  sJ ‚||k7  sJ ‚ |dd¬«      }t        ||«      sJ ‚| j                  | j	                  |«      «      |k(  sJ ‚||k7  sJ ‚t        j                  t        d¬«      5   |dd¬«       d d d «       t        j                  t        d¬«      5   |dd¬«       d d d «       d}t        j                  t        |¬«      5   |ddd¬«       d d d «       t        j                  t        d¬«      5   |ddd¬«       d d d «       t        j                  t        |¬«      5   |ddd¬«       d d d «       t        j                  t        «      5   |ddd¬«       d d d «       t        j                  t        «      5   |«        d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒüxY w# 1 sw Y   Œ×xY w# 1 sw Y   Œ´xY w# 1 sw Y   Œ‘xY w# 1 sw Y   ŒpxY w# 1 sw Y   y xY w)Nr   rÚ   zfake-account-name)rÝ   Úfakeaccountkey)rÝ   rÞ   zfake-accountÚfakeaccountzfake-blob-authorityzfake-dfs-authorityrï  rÜ   Úfakesastoken)rÝ   Ú	sas_tokenzfake-tenant-idzfake-client-idzfake-client-secret)rÝ   Ú	tenant_idÚ	client_idÚclient_secret)rÝ   r3  zclient_id must be specifiedr.  )rÝ   r2  )rÝ   r4  z«Invalid Azure credential configuration: For ManagedIdentityCredential, provide only client_id. For ClientSecretCredential, provide tenant_id, client_id, and client_secret.)rÝ   r3  r4  )rÝ   r2  r4  )rÝ   r2  r3  )rÝ   rÞ   r1  )	rÀ   rÛ   r$   r`  r_  rÂ   r2  rZ   rE  )	ra  rÛ   rM  rN  Úfs3Úfs4Úfs5Úfs6Úinvalid_msgs	            r   Útest_azurefs_optionsr:  È  s`  € å*á
Ð':Ô
;€CÜ�c˜?Ô+Ð+Ð+Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?á
Ð':Ø&6ô8€Cä�c˜?Ô+Ð+Ð+Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø�#Š:Ðˆ:á
 ~À=Ø1FØ0DØ.5Ø-4ô	6€Cô
 �c˜?Ô+Ð+Ð+Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø�#Š:Ðˆ:á
Ð':Ø$2ô4€Cä�c˜?Ô+Ð+Ð+Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø�#Š:Ðˆ:á
Ø(Ø"Ø"Ø*ô	€Cô �c˜?Ô+Ð+Ð+Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø�#Š:Ðˆ:á
Ø(Ø"ô€Cô �c˜?Ô+Ð+Ð+Ø×Ñ˜}×2Ñ2°3Ó7Ó8¸CÒ?Ð?Ð?Ø�#Š:Ðˆ:ä	�‰”zÐ)FÔ	Gñ 
ÙØ,Ø&õ	
÷
ô 
�‰”zÐ)FÔ	Gñ 
ÙØ,Ø.õ	
÷
ð	Wð ô 
�‰”z¨Ô	5ñ 
ÙØ,Ø&Ø.õ	
÷
ô 
�‰”zÐ)FÔ	Gñ 
ÙØ,Ø&Ø.õ	
÷
ô 
�‰”z¨Ô	5ñ 
ÙØ,Ø&Ø&õ	
÷
ô 
�‰”zÓ	"ñ 2ÙÐ%8ÀmØ"0õ	2÷2ô 
�‰”yÓ	!ñ ÙÔ÷ð ÷W
ñ 
ú÷
ð 
ú÷
ð 
ú÷
ð 
ú÷
ð 
ú÷2ð 2ú÷ð úsT   Æ8KÇ&K,ÈK8ÉLÉ4LÊ!LËL(ËK)Ë,K5Ë8LÌLÌLÌL%Ì(L1c                 ó$  — ddl m} t        j                  «       st	        j
                  d«       | \  }}}d}d}d}d}	 |||d|||¬	«      }
|j                  |	j                  ||d|||«      «      }|j                  |	j                  ||d
|||«      «      }|j                  |	j                  ||d
|dz   ||«      «      } |||«      }|j                  d|› d|› �«      } |||d¬«      } |||dd¬«      } |||dt        j                  d«      ¬«      } |||dd¬«      } |||ddddi¬«      }|
|k(  sJ ‚||k(  sJ ‚||k7  sJ ‚||k7  sJ ‚||k7  sJ ‚||k7  sJ ‚||k7  sJ ‚||k7  sJ ‚||k7  sJ ‚||k(  sJ ‚||k7  sJ ‚||k7  sJ ‚t	        j                  t        «      5   |«        d d d «       t	        j                  t        «      5  |j                  d«       d d d «       |
||||||||||fD ]'  }|j                  |j                  |«      «      |k(  rŒ'J ‚ | \  }}} ||||¬«      }|j                  t        d«      «      sJ ‚|j                  d|› d|› d|› �«      }|j                  t        d«      «      sJ ‚y # 1 sw Y   Œ×xY w# 1 sw Y   Œ°xY w)Nr   rë   rê   é   i   i   zIhdfs://{}:{}/?user={}&replication={}&buffer_size={}&default_block_size={}Úlibhdfs)rí   Úreplicationr½  Údefault_block_sizeÚmerz  zhdfs://r²   Ú	localuser)rí   Ú
cache_path)rí   Úkerb_ticketÚcache_path2Ú
hdfs_tokenÚabcd)rí   rC  Ú
extra_confr‹  rW   z/?user=)rÀ   rì   ro   rï   rÂ   rÃ   Úfrom_uriÚformatr}  ry  r2  rE  r`  r_  rB   r   )rð   ra  rì   rÆ   rÇ   rí   r>  r½  r?  ÚuriÚhdfs1Úhdfs2Úhdfs3Úhdfs4Úhdfs5Úhdfs6Úhdfs7Úhdfs8Úhdfs9Úhdfs10Úhdfs11rŽ   ré   s                          r   Útest_hdfs_optionsrV  &  s&  € å+Ü�?‰?ÔÜ�‰Ð+Ô,à&Ñ€Dˆ$�à€KØ€KØ$Ðð$€Cñ ˜T 4¨iØ)4À+Ø0BôD€Eð ×%Ñ% c§j¡jØˆd�I˜{¨KÐ9Kó'ó €Eð ×%Ñ% c§j¡jØˆd�D˜+ {Ð4Fó'ó €Eð ×%Ñ% c§j¡jØˆd�D˜+¨™/¨;Ð8Jó'ó €Eñ ˜T 4Ó(€EØ×%Ñ%¨°¨v°Q°t°fÐ&=Ó>€EÙ˜T 4¨kÔ:€EÙ˜T 4¨kØ)5ô7€Eá˜T 4¨kÜ)0¯©°lÓ)CôE€Eá˜d D¨{Ø*7ô9€Fá˜d D¨{Ø*6Ø*6¸Ð)?ôA€Fð �EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�EŠ>Ðˆ>Ø�UŠ?Ðˆ?Ø�UŠ?Ðˆ?ä	�‰”yÓ	!ñ ÙÔ÷ä	�‰”yÓ	!ñ %Ø×!Ñ! !Ô$÷%ð �e˜U E¨5°%¸ÀØ�f˜fð&ò Bˆà×"Ñ" =×#6Ñ#6°rÓ#:Ó;¸rÓAÐAÐAðBð 'Ñ€Dˆ$�á˜D $¨TÔ2€DØ×Ñœl¨3Ó/Ô0Ð0Ð0à×$Ñ$Ø
�$��q˜˜˜g d VÐ,ó€Dð ×Ñœl¨3Ó/Ô0Ð0Ñ0÷#ð ú÷%ð %ús   ÆI:ÇJÉ:JÊJ)rJ  Úexpected_klassÚexpected_pathzmock:r‚  zmock:foo/barr:  zmock:/foo/barzmock:///foo/barzmock:///some%20path/%C3%A9u   some path/Ã©úfile:/rW   zfile:///zfile:/foo/barz/foo/barzfile:///foo/barzfile:///some%20path/%C3%A9u   /some path/Ã©u   /some path/%20Ã©c                 ó^   — t        j                  | «      \  }}t        ||«      sJ ‚||k(  sJ ‚y r   )r   rH  r$   )rJ  rW  rX  rŽ   r3   s        r   Útest_filesystem_from_urir[  n  s6   € ô& ×"Ñ" 3Ó'�H€BˆÜ�b˜.Ô)Ð)Ð)Ø�=Ò Ð Ñ r!   c                  ó6  — t        j                  d«      \  } }t        | t        «      sJ ‚|dk(  sJ ‚t        j                  d¬«      \  } }t        | t        «      sJ ‚|dk(  sJ ‚t        «       j                  d¬«      \  } }t        | t        «      sJ ‚|dk(  sJ ‚y )NrY  rW   )rJ  )r   rH  r$   r   )rŽ   r3   s     r   Ú test_filesystem_from_uri_callingr]  †  sœ   € ä×"Ñ" 8Ó,�H€BˆÜ�bœ/Ô*Ð*Ð*Ø�3Š;Ðˆ;ô ×"Ñ" xÔ0�H€BˆÜ�bœ/Ô*Ð*Ð*Ø�3Š;Ðˆ;ô Ó ×)Ñ)¨hÐ)Ó7�H€BˆÜ�bœ/Ô*Ð*Ð*Ø�3Š;Ð‰;r!   r3   c                 óä   — t        j                  | «      }t        j                  |«      \  }} t	        |t
        «      sJ ‚| |j                  «       j                  «       j                  «       k(  sJ ‚y r   )	r}  ry  r   rH  r$   r   ÚresolveÚabsoluter‡   )r3   r‰   rŽ   s      r   Ú test_filesystem_from_path_objectra  —  s\   € ô
 	�‰�TÓ€AÜ×"Ñ" 1Ó%�H€BˆÜ�bœ/Ô*Ð*Ð*Ø�1—9‘9“;×'Ñ'Ó)×2Ñ2Ó4Ò4Ð4Ñ4r!   c           	      óF  — ddl m} | d   \  }}}}d|› d|› d|› d|› d�	}t        j                  |«      \  }}t	        ||«      sJ ‚|dk(  sJ ‚|j                  |«       |j                  |g«      \  }	|	j                  |k(  sJ ‚|	j                  t        j                  k(  sJ ‚y )	Nr   rÍ   r°   ús3://r²   z0@mybucket/foo/bar?scheme=http&endpoint_override=z&allow_bucket_creation=Trueúmybucket/foo/bar)rÀ   rÎ   r   rH  r$   rS   rB   r3   r<  r   r<   )
rÓ   rÎ   rÆ   rÇ   rÏ   rÐ   rJ  rŽ   r3   rA   s
             r   Útest_filesystem_from_uri_s3re  ¢  s¿   € å'à)2°<Ñ)@Ñ&€Dˆ$�
˜Jà�*�˜Q˜z˜lð +Ø!˜F ! D 6Ð)DðF€Cô ×"Ñ" 3Ó'�H€BˆÜ�b˜,Ô'Ð'Ð'ØÐ%Ò%Ð%Ð%à‡M�M�$ÔØ×Ñ˜t˜fÓ%�F€TØ�9‰9˜ÒÐÐØ�9‰9œ×*Ñ*Ò*Ð*Ñ*r!   c                 óB  — ddl m} | d   \  }}dd|› d|› d�z   dz   }t        j                  |«      \  }}t	        ||«      sJ ‚|d	k(  sJ ‚|j                  |«       |j                  |g«      \  }|j                  |k(  sJ ‚|j                  t        j                  k(  sJ ‚y )
Nr   r®   r°   zgs://anonymous@z/mybucket/foo/bar?scheme=http&endpoint_override=r²   ú&z0retry_limit_seconds=5&project_id=test-project-idrd  )rÀ   r¯   r   rH  r$   rS   rB   r3   r<  r   r<   )rÅ   r¯   rÆ   rÇ   rJ  rŽ   r3   rA   s           r   Útest_filesystem_from_uri_gcsrh  µ  s·   € å(à˜LÑ)�J€Dˆ$àØ<¸T¸FÀ!ÀDÀ6ÈÐKñLà=ñ>€Cô ×"Ñ" 3Ó'�H€BˆÜ�b˜-Ô(Ð(Ð(ØÐ%Ò%Ð%Ð%à‡M�M�$ÔØ×Ñ˜t˜fÓ%�F€TØ�9‰9˜ÒÐÐØ�9‰9œ×*Ñ*Ò*Ð*Ñ*r!   c                  ó  — t        «       } t        | «      }t        |t        «      sJ ‚|j                  dk(  sJ ‚|j                  | u sJ ‚t        j                  t        «      5  t        d «       d d d «       y # 1 sw Y   y xY w©Nz	py::dummy)r   r   r$   r$  ÚhandlerrÂ   r2  rE  )rk  rŽ   s     r   Útest_py_filesystemrl  É  sp   € Ü‹n€GÜ	�gÓ	€BÜ�bœ,Ô'Ð'Ð'Ø�<‰<˜;Ò&Ð&Ð&Ø�:‰:˜Ñ Ð Ð ä	�‰”yÓ	!ñ Ü�TÔ÷÷ ñ ús   Á"A7Á7B c                  ó(  — t        d«      } t        d«      }t        d«      }t        | «      }t        | «      }t        |«      }t        |«      }||usJ ‚||usJ ‚||usJ ‚||k(  sJ ‚||k7  sJ ‚||k(  sJ ‚|t        «       k7  sJ ‚|t        «       k7  sJ ‚y )Nrz  r<  )r   r   r   r>   )Úhandler1Úhandler2Úhandler3rM  rN  r5  r6  s          r   Útest_py_filesystem_equalityrq  Ô  s¬   € Ü˜A‹€HÜ˜A‹€HÜ˜A‹€HÜ
�xÓ
 €CÜ
�xÓ
 €CÜ
�xÓ
 €CÜ
�xÓ
 €Cà�c‰>Ðˆ>Ø�c‰>Ðˆ>Ø�c‰>Ðˆ>Ø�#Š:Ðˆ:Ø�#Š:Ðˆ:Ø�#Š:Ðˆ:à”/Ó#Ò#Ð#Ð#Ø”&“(Š?Ð‰?r!   c                 óè   — t        «       }t        |«      }| j                  |«      }| j                  |«      }t	        |t
        «      sJ ‚||k(  sJ ‚|j                  |k(  sJ ‚|j                  dk(  sJ ‚y rj  )r   r   r_  r`  r$   r   rk  r$  )ra  rk  rŽ   rb  rc  s        r   Útest_py_filesystem_picklingrs  è  sw   € Ü‹n€GÜ	�gÓ	€Bà×$Ñ$ RÓ(€JØ×"Ñ" :Ó.€HÜ�h¤
Ô+Ð+Ð+Ø�rŠ>Ðˆ>Ø×Ñ˜wÒ&Ð&Ð&Ø×Ñ Ò,Ð,Ñ,r!   c                  óR  — t        «       } t        | «      }t        |t        «      sJ ‚t        j                  | «      }d }  |«       €J ‚d } |«       �J ‚t        «       } t        | «      }t        j                  | «      }d }  |«       |j
                  u sJ ‚ |«       €J ‚d } |«       �J ‚y r   )r   r   r$   ÚweakrefÚrefrk  )rk  rŽ   Úwrs      r   Útest_py_filesystem_lifetimerx  ô  s®   € Ü‹n€GÜ	�gÓ	€BÜ�bœ,Ô'Ð'Ð'Ü	�‰�WÓ	€BØ€GÙ‹4ÐÐÐØ	€BÙ‹4ˆ<Ðˆ<ô ‹n€GÜ	�gÓ	€BÜ	�‰�WÓ	€BØ€GÙ‹4�2—:‘:ÑÐÐÙ‹4ÐÐÐØ	€BÙ‹4ˆ<Ð‰<r!   c                  óÆ  — t        «       } t        | «      }|j                  dg«      \  }|j                  dk(  sJ ‚|j                  t
        j                  k(  sJ ‚|j                  dg«      \  }|j                  dk(  sJ ‚|j                  t
        j                  k(  sJ ‚|j                  dg«      \  }|j                  dk(  sJ ‚|j                  t
        j                  k(  sJ ‚t        j                  t        «      5  |j                  dg«       d d d «       t        j                  t        «      5  |j                  dg«       d d d «       y # 1 sw Y   Œ>xY w# 1 sw Y   y xY w)Nzsome/dirz	some/filer8   r9   rÞ  )r   r   rB   r3   r<  r   r<   r;   r=   rÂ   r2  rE  r?   )rk  rŽ   rA   s      r   Ú test_py_filesystem_get_file_inforz  	  s4  € Ü‹n€GÜ	�gÓ	€Bà×Ñ˜z˜lÓ+�F€TØ�9‰9˜
Ò"Ð"Ð"Ø�9‰9œ×*Ñ*Ò*Ð*Ð*à×Ñ˜{˜mÓ,�F€TØ�9‰9˜Ò#Ð#Ð#Ø�9‰9œŸ™Ò%Ð%Ð%à×Ñ˜z˜lÓ+�F€TØ�9‰9˜
Ò"Ð"Ð"Ø�9‰9œ×)Ñ)Ò)Ð)Ð)ä	�‰”yÓ	!ñ &Ø
×Ñ˜)˜Ô%÷&ô 
�‰”wÓ	ñ "Ø
×Ñ˜%˜Ô!÷"ð "÷&ð &ú÷"ð "ús   Ã;EÄ/EÅEÅE c                  óZ  — t        «       } t        | «      }t        d¬«      }|j                  |«      }t	        |«      dk(  sJ ‚|d   j
                  dk(  sJ ‚|d   j                  t        j                  k(  sJ ‚|d   j                  dk(  sJ ‚|d   j
                  dk(  sJ ‚|d   j                  t        j                  k(  sJ ‚|d   j                  �J ‚t        dd	¬
«      }|j                  |«      }t	        |«      dk(  sJ ‚|d   j
                  dk(  sJ ‚|d   j
                  dk(  sJ ‚|d   j
                  dk(  sJ ‚t        d¬«      }t        j                  t        «      5  |j                  |«       d d d «       t        dd	¬«      }|j                  |«      g k(  sJ ‚y # 1 sw Y   Œ-xY w)NrD   )rJ   r<  r   rE   rF   rz  rH   T)rJ   rM   r‹  rI   r8   )rJ   rK   )r   r   r   rB   rŒ  r3   r<  r   r;   rG   r<   rÂ   r2  rL   )rk  rŽ   rN   rO   s       r   Ú)test_py_filesystem_get_file_info_selectorr|     s›  € Ü‹n€GÜ	�gÓ	€Bä YÔ/€HØ×Ñ˜XÓ&€EÜˆu‹:˜Š?Ðˆ?Ø�‰8�=‰=˜OÒ+Ð+Ð+Ø�‰8�=‰=œHŸM™MÒ)Ð)Ð)Ø�‰8�=‰=˜CÒÐÐØ�‰8�=‰=Ð-Ò-Ð-Ð-Ø�‰8�=‰=œH×.Ñ.Ò.Ð.Ð.Ø�‰8�=‰=Ð Ð Ð ä Y¸$Ô?€HØ×Ñ˜XÓ&€EÜˆu‹:˜Š?Ðˆ?Ø�‰8�=‰=˜OÒ+Ð+Ð+Ø�‰8�=‰=Ð-Ò-Ð-Ð-Ø�‰8�=‰=Ð3Ò3Ð3Ð3ä ZÔ0€HÜ	�‰Ô(Ó	)ñ #Ø
×Ñ˜Ô"÷#ô  ZÀÔF€HØ×Ñ˜HÓ%¨Ò+Ð+Ñ+÷	#ð #ús   Å#F!Æ!F*c                  óX  — t        «       } t        | «      }|j                  dd¬«       |j                  dd¬«       t        j                  t
        «      5  |j                  d«       d d d «       |j                  d«       |j                  d«       d	D ]H  }t        j                  t        «      5  |j                  |«       d d d «       |j                  |d¬
«       ŒJ |j                  d«       |j                  dd«       |j                  dd«       y # 1 sw Y   Œ®xY w# 1 sw Y   Œ`xY w)NrM   TrŠ  rR   FÚfoobarrU   rX   )r‚  rW   r§  r¨  r_   ra   rb   rh   ri   )r   r   rS   rÂ   r2  r?   rU   rX   rZ   r_   rf   rj   )rk  rŽ   r3   s      r   Útest_py_filesystem_opsr  =  sù   € Ü‹n€GÜ	�gÓ	€Bà‡M�M�+¨€MÔ.Ø‡M�M�/¨U€MÔ3Ü	�‰”wÓ	ñ  Ø
�‰�hÔ÷ ð ‡M�M�,ÔØ×ÑÐ0Ô1Øò ;ˆÜ�]‰]œ:Ó&ñ 	)Ø×"Ñ" 4Ô(÷	)à
×Ñ˜t°TÐÕ:ð;ð ‡N�N�=Ô!Ø‡G�GˆK˜Ô#Ø‡L�LÐ! >Õ2÷ ð  ú÷	)ð 	)ús   ÁDÂ/D ÄDÄ D)	c                  ó   — t        t        «       «      } | j                  d«      5 }|j                  «       dk(  sJ ‚	 d d d «       t	        j
                  t        «      5  | j                  d«       d d d «       y # 1 sw Y   Œ=xY w# 1 sw Y   y xY w)NÚsomefiles   somefile:input_streamr8   )r   r   rs   rÄ  rÂ   r2  rL   ©rŽ   r6  s     r   Útest_py_open_input_streamrƒ  Q  s}   € Ü	”l“nÓ	%€Bà	×	Ñ	˜jÓ	)ð 4¨QØ�v‰v‹xÐ3Ò3Ð3Ñ3÷4ä	�‰Ô(Ó	)ñ )Ø
×Ñ˜ZÔ(÷)ð )÷4ð 4ú÷)ð )úó   ¥A8ÁBÁ8BÂBc                  ó   — t        t        «       «      } | j                  d«      5 }|j                  «       dk(  sJ ‚	 d d d «       t	        j
                  t        «      5  | j                  d«       d d d «       y # 1 sw Y   Œ=xY w# 1 sw Y   y xY w)Nr�  s   somefile:input_filer8   )r   r   ru   rÄ  rÂ   r2  rL   r‚  s     r   Útest_py_open_input_filer†  Z  s}   € Ü	”l“nÓ	%€Bà	×	Ñ	˜JÓ	'ð 2¨1Ø�v‰v‹xÐ1Ò1Ð1Ñ1÷2ä	�‰Ô(Ó	)ñ 'Ø
×Ñ˜:Ô&÷'ð '÷2ð 2ú÷'ð 'úr„  c                  ó˜   — t        t        «       «      } | j                  d«      5 }|j                  d«       d d d «       y # 1 sw Y   y xY w©Nr�  r   )r   r   r|   r4  r‚  s     r   Útest_py_open_output_streamr‰  c  ó?   € Ü	”l“nÓ	%€Bà	×	Ñ	˜zÓ	*ð ¨aØ	�‰�Ô÷÷ ñ úó   ¥A Á A	c                  ó˜   — t        t        «       «      } | j                  d«      5 }|j                  d«       d d d «       y # 1 sw Y   y xY wrˆ  )r   r   r   r4  r‚  s     r   Útest_py_open_append_streamr�  j  rŠ  r‹  c                  ó˜  — ddl m}  t        j                  j	                  d«      xs d} | d¬«      }|j
                  |k(  sJ ‚ | dd¬«      }|j                  t        d«      «      }t        |«      dkD  sJ ‚d	}|j                  |«      5 }|j                  «       }d
|v sJ ‚|d   dk(  sJ ‚|d   dk(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nr   rÍ   ÚPYARROW_TEST_S3_REGIONr)  Trõ  )r¹   r  zarrow-datasets/nyc-taxiz8arrow-datasets/nyc-taxi/year=2019/month=6/part-0.parquetr×  zLast-Modifieds   2025-11-26T10:28:55ZÚETags%   "4c6a76826a695c6ac61592bc30cda3df-16")rÀ   rÎ   ÚosÚenvironÚgetr  rB   r   rŒ  rs   r{   )rÎ   Údefault_regionrŽ   Úentriesr   r6  Úmds          r   Útest_s3_real_awsr—  q  sé   € õ (Ü—j‘j—n‘nÐ%=Ó>ò "Ø!ð á	 Ô	%€BØ�9‰9˜Ò&Ð&Ð&á	 ¨[Ô	9€BØ×Ñœ|Ø!ó #ó $€Gäˆw‹<˜!ÒÐÐØ
D€CØ	×	Ñ	˜cÓ	"ð F aØ�Z‰Z‹\ˆØ Ñ#Ð#Ð#Ø�/Ñ"Ð&=Ò=Ð=Ð=ð �&‰zÐEÒEÐEÑE÷F÷ Fñ Fús   Â+C Ã C	c                  óÊ  — t        j                  d«      \  } }| j                  dk(  sJ ‚| j                  |«      5 }d|j	                  d«      v sJ ‚	 d d d «       t        j                  d«      \  } }| j                  dk(  sJ ‚t        j                  t        d¬«      5  t        j                  d	«       d d d «       t        j                  d
«      \  } }| j                  dk(  sJ ‚t        j                  d«      \  } }| j                  |«      }t        j                  t        «      5  |j                  «        d d d «       y # 1 sw Y   ŒðxY w# 1 sw Y   ŒšxY w# 1 sw Y   y xY w)Nzs3://mf-nwp-models/README.txtú	eu-west-1s&   Meteo-France Atmospheric models on AWSé2   z.s3://mf-nwp-models/README.txt?region=us-east-2r  zBucket '.*' not foundr.  z s3://x-arrow..nonexistent-bucketz0s3://x-arrow-nonexistent-bucket?region=us-east-3z	us-east-3zMs3://x-arrow-nonexistent-bucket/T.md?region=us-east-2&allow_delayed_open=true)
r   rH  r  rs   rÄ  rÂ   r2  r?   r|   Úclose)rŽ   r3   r6  Ústreams       r   Ú!test_s3_real_aws_region_selectionr�  ‰  sN  € ô ×"Ñ"Ð#BÓC�H€BˆØ�9‰9˜Ò#Ð#Ð#Ø	×	Ñ	˜dÓ	#ð G qØ8¸A¿F¹FÀ2»JÑFÐFÑF÷Gô ×"Ñ"Ø8ó:�H€Bˆà�9‰9˜Ò#Ð#Ð#ô 
�‰”wÐ&=Ô	>ñ @Ü×ÑÐ>Ô?÷@ä×"Ñ"Ð#UÓV�H€BˆØ�9‰9˜Ò#Ð#Ð#ô
 ×"Ñ"ØWóY�H€Bˆà×"Ñ" 4Ó(€FÜ	�‰”wÓ	ñ Ø�‰Œ÷ð ÷1Gð Gú÷@ð @ú÷ð ús#   »EÂEÄ'EÅE
ÅEÅE"c                  ó$  — ddl m}   | d«      dk(  sJ ‚ | d«      dk(  sJ ‚t        j                  t        d¬«      5   | d	«       d d d «       t        j                  t        d¬«      5   | d
«       d d d «       y # 1 sw Y   Œ6xY w# 1 sw Y   y xY w)Nr   ©Úresolve_s3_regionr'  r)  zmf-nwp-modelsr™  zNot a valid bucket namer.  r:  z	s3:bucket)rÀ   r   rÂ   r2  rZ   rŸ  s    r   Útest_resolve_s3_regionr¡  «  s‰   € å,ÙÐ-Ó.°+Ò=Ð=Ð=Ù˜_Ó-°Ò<Ð<Ð<ä	�‰”zÐ)BÔ	Cñ %Ù˜)Ô$÷%ä	�‰”zÐ)BÔ	Cñ 'Ù˜+Ô&÷'ð '÷%ð %ú÷'ð 'ús   ¼	A:Á(	BÁ:BÂBc           
      ó`  — |d   }|d   } |d«      }|j                  |«      5 }|j                  d«       d d d «       | \  }}}	}
d|	› d|
› d|› d|› d|› �
}t        |d	z  «      }t        ||«       t	        «       }|j                  |«      5 }|j                  «       dk(  sJ ‚	 d d d «       t        |d
z  «      }t        |||¬«       |j                  |«      5 }|j                  «       dk(  sJ ‚	 d d d «       t        |dz  «      }t        |«      }t        ||«       |j                  |«      5 }|j                  «       dk(  sJ ‚	 d d d «       t        |dz  «      }t        |||¬«       |j                  |«      5 }|j                  «       dk(  sJ ‚	 d d d «       t        |dz  «      }t        ||dd¬«       |j                  |«      5 }|j                  «       dk(  sJ ‚	 d d d «       y # 1 sw Y   �Œ±xY w# 1 sw Y   �ŒRxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒÊxY w# 1 sw Y   ŒŠxY w# 1 sw Y   y xY w)NrŽ   r�   rh  r0  rc  r²   ú@z?scheme=http&endpoint_override=zc_copied1.txtzc_copied2.txt)Úsource_filesystemzc_copied3.txtzc_copied4.txt)Údestination_filesystemzc_copied5.txtrz  F©Ú
chunk_sizeÚuse_threads)r|   r4  rª   r   r   rs   rÄ  r   )Ús3_connectionrÔ   rŠ   rŽ   r�   r3   r6  rÆ   rÇ   rÏ   rÐ   Ú
source_uriÚlocal_path1r–   Úlocal_path2Úlocal_path3Údestination_uriÚlocal_path4Úlocal_path5s                      r   Útest_copy_filesr±  ·  sN  € à	ˆd‰€BØ�(‰^€Fñ �'‹?€DØ	×	Ñ	˜tÓ	$ð ¨Ø	�‰�Ô÷ð *7Ñ&€Dˆ$�
˜Jà
�
ˆ|˜1˜Z˜L¨¨$¨Ø
)¨$¨¨q°°ð	8ð ô
 �g Ñ/Ó0€KÜˆz˜;Ô'äÓ€GØ	×	"Ñ	" ;Ó	/ð #°1Ø�v‰v‹x˜7Ò"Ð"Ñ"÷#ô �g Ñ/Ó0€KÜˆt�[°BÕ7Ø	×	"Ñ	" ;Ó	/ð #°1Ø�v‰v‹x˜7Ò"Ð"Ñ"÷#ô �g Ñ/Ó0€KÜ% kÓ2€OÜˆz˜?Ô+à	×	"Ñ	" ;Ó	/ð #°1Ø�v‰v‹x˜7Ò"Ð"Ñ"÷#ô �g Ñ/Ó0€KÜˆz˜;¸wÕGà	×	"Ñ	" ;Ó	/ð #°1Ø�v‰v‹x˜7Ò"Ð"Ñ"÷#ô �g Ñ/Ó0€KÜˆz˜;°1À%ÕHà	×	"Ñ	" ;Ó	/ð #°1Ø�v‰v‹x˜7Ò"Ð"Ñ"÷#ð #÷Uñ ú÷#ñ #ú÷#ñ #ú÷#ð #ú÷#ð #ú÷#ð #úsG   ¤G%ÂG2ÃG?Ä,HÅ8HÇH$Ç%G/Ç2G<Ç?H	ÈHÈH!È$H-c                 óœ  ‡— t        «       Š| dz  }|j                  «        ‰j                  t        |dz  «      «      5 }|j	                  d«       d d d «       ‰j                  t        |dz  «      «      5 }|j	                  d«       d d d «       ˆfd„}| dz  }|j                  «        t        t        |«      t        |«      «        ||«       | dz  }|j                  «        t        t        |«      t        |«      ‰‰¬	«        ||«       | d
z  }|j                  «        t        t        |«      «      }t        t        |«      «      }t        ||«        ||«       | dz  }	|	j                  «        t        ||	«        ||	«       | dz  }
|
j                  «        t        ||
dd¬«        ||
«       y # 1 sw Y   �ŒfxY w# 1 sw Y   �Œ<xY w)NÚsourceÚfile1ó   test1Úfile2ó   test2c                 ó&  •— ‰j                  t        | dz  «      «      5 }|j                  «       dk(  sJ ‚	 d d d «       ‰j                  t        | dz  «      «      5 }|j                  «       dk(  sJ ‚	 d d d «       y # 1 sw Y   ŒFxY w# 1 sw Y   y xY w)Nr´  rµ  r¶  r·  )rs   rª   rÄ  )Údestination_dirr6  r–   s     €r   Úcheck_copied_filesz5test_copy_files_directory.<locals>.check_copied_files÷  sŽ   ø€ Ø×&Ñ&¤s¨?¸WÑ+DÓ'EÓFð 	(È!Ø—6‘6“8˜xÒ'Ð'Ñ'÷	(à×&Ñ&¤s¨?¸WÑ+DÓ'EÓFð 	(È!Ø—6‘6“8˜xÒ'Ð'Ñ'÷	(ð 	(÷	(ð 	(ú÷	(ð 	(ús   ŸA;ÁBÁ;BÂBÚdestination1Údestination2)r¤  r¥  Údestination3Údestination4Údestination5rz  Fr¦  )r   Úmkdirr|   rª   r4  r   r   )rŠ   Ú
source_dirr6  rº  Údestination_dir1Údestination_dir2Údestination_dir3rª  r®  Údestination_dir4Údestination_dir5r–   s              @r   Útest_copy_files_directoryrÇ  ì  s»  ø€ ÜÓ€Gð ˜8Ñ#€JØ×ÑÔØ	×	#Ñ	#¤C¨
°WÑ(<Ó$=Ó	>ð À!Ø	�‰�Ô÷à	×	#Ñ	#¤C¨
°WÑ(<Ó$=Ó	>ð À!Ø	�‰�Ô÷ô(ð  Ñ/ÐØ×ÑÔÜŒs�:‹¤Ð$4Ó 5Ô6ÙÐ'Ô(ð  Ñ/ÐØ×ÑÔÜŒs�:‹¤Ð$4Ó 5Ø!(ÀõJáÐ'Ô(ð  Ñ/ÐØ×ÑÔÜ ¤ Z£Ó1€JÜ%¤cÐ*:Ó&;Ó<€OÜˆz˜?Ô+ÙÐ'Ô(ð  Ñ/ÐØ×ÑÔÜˆzÐ+Ô,ÙÐ'Ô(ð  Ñ/ÐØ×ÑÔÜˆzÐ+¸ÀuÕMÙÐ'Õ(÷Uñ ú÷ñ ús   ¾F4Á5GÆ4F>ÇGc                  óT   — d} t        j                  t        j                  d| g«       y )Na  if 1:
        import pytest
        from pyarrow.fs import (FileSystem, S3FileSystem,
                                ensure_s3_initialized, finalize_s3)

        fs, path = FileSystem.from_uri('s3://mf-nwp-models/README.txt')
        assert fs.region == 'eu-west-1'
        f = fs.open_input_stream(path)
        f.read(50)

        finalize_s3()

        with pytest.raises(ValueError, match="S3 .* finalized"):
            f.read(50)
        with pytest.raises(ValueError, match="S3 .* finalized"):
            fs.open_input_stream(path)
        with pytest.raises(ValueError, match="S3 .* finalized"):
            S3FileSystem(anonymous=True)
        with pytest.raises(ValueError, match="S3 .* finalized"):
            FileSystem.from_uri('s3://mf-nwp-models/README.txt')
        ú-c©Ú
subprocessÚ
check_callÚsysÚ
executable©Úcodes    r   Útest_s3_finalizerÑ    s$   € ð€Dô* ×Ñœ3Ÿ>™>¨4°Ð6Õ7r!   c                  óT   — d} t        j                  t        j                  d| g«       y )NaÒ  if 1:
        import pytest
        from pyarrow.fs import resolve_s3_region, ensure_s3_initialized, finalize_s3

        resolve_s3_region('mf-nwp-models')

        finalize_s3()

        # Testing both cached and uncached accesses
        with pytest.raises(ValueError, match="S3 .* finalized"):
            resolve_s3_region('mf-nwp-models')
        with pytest.raises(ValueError, match="S3 .* finalized"):
            resolve_s3_region('arrow-datasets')
        rÉ  rÊ  rÏ  s    r   Ú test_s3_finalize_region_resolverrÓ  ;  s$   € ð€Dô ×Ñœ3Ÿ>™>¨4°Ð6Õ7r!   c                  óT   — d} t        j                  t        j                  d| g«       y )Na÷  if 1:
        import threading
        import pytest
        from pyarrow.fs import (FileSystem, S3FileSystem,
                                ensure_s3_initialized, finalize_s3)
        threads = []
        fn = lambda: FileSystem.from_uri('s3://mf-nwp-models/README.txt')
        for i in range(4):
            thread = threading.Thread(target = fn)
            threads.append(thread)
            thread.start()

        for thread in threads:
            thread.join()

        finalize_s3()
        rÉ  rÊ  rÏ  s    r   Útest_concurrent_s3fs_initrÕ  O  s$   € ð
€Dô" ×Ñœ3Ÿ>™>¨4°Ð6Õ7r!   zUatexit(ensure_s3_finalized) will be called too late with bundled aws-sdk-cpp 1.11.587r"  z?Leaking S3ClientFinalizer causes segfault on musl based systemsc            	      óH  — 	 t        j                  ddg«       t        «       } dddd| › �dt        j                  j                  t        d«      g}t        j                  |t         j                  ¬	«      }	 d
| › d�}t        j                  «       }d }t        j                  «       |dz   k  r(	 t        |«      5 }|j                  dk(  sJ ‚	 d d d «       nt        j"                  d|›d|› �«       |j%                  «        |j'                  «       dk(  sJ ‚y # t        $ r t        j                  d«       Y �Œw xY w# 1 sw Y   ŒpxY w# t        $ r!}|}t        j                   d«       Y d }~nd }~ww xY wt        j                  «       |dz   k  rŒâŒ»# |j%                  «        w xY w)NÚuwsgiz	--versionz"uwsgi not installed on this Pythonz-iz--httpz
127.0.0.1:z--wsgi-filezwsgi_examples.py)Ústdinzhttp://127.0.0.1:z/s3/r‰  éÈ   gš™™™™™¹?zCould not fetch r¼   é   )rË  rÌ  rL   rÂ   rÃ   r   r‘  r3   ÚjoinÚhereÚPopenÚDEVNULLÚtimer   ÚstatusrÁ   ÚsleepÚfailÚ	terminateÚwait)rÇ   ÚargsÚprocÚurlÚ
start_timeÚerrorÚresprÉ   s           r   Útest_uwsgi_integrationrë  h  ss  € ð:Ü×Ñ˜w¨Ð4Ô5ô Ó€DØ�T˜8 z°$°Ð%8Øœ2Ÿ7™7Ÿ<™<¬Ð.@ÓAðC€Dä×Ñ˜D¬
×(:Ñ(:Ô;€DðØ! $  tÐ,ˆÜ—Y‘Y“[ˆ
ØˆÜ�i‰i‹k˜J¨™NÒ*ð Ü˜S“\ð . TØŸ;™;¨#Ò-Ð-Ñ-÷.àô
 �K‰KÐ*¨3¨'°°E°7Ð;Ô<à�‰Ôà�9‰9‹;˜"ÒÐÑøô3 ò :Ü�‰Ð8×9ð:ú÷.ð .ûô ò  Ø�Ü—
‘
˜3—‘ûð úô �i‰i‹k˜J¨™NÓ*ùð 	�‰Õús_   ‚D Á66F Â-E Â8D:ÃE ÃF ÄD7Ä6D7Ä:EÄ?E Å	E0ÅE+Å&F Å+E0Å0F ÆF!c                  ó^  — 	 ddl m}  ddlm} t        j                  d«      \  }}t        t         «       «      «      }||k(  sJ ‚|dk(  sJ ‚d}t        j                  d|› �«      \  }}t        t          «       «      «      }||k(  sJ ‚y # t        $ r t        j                  d«       Y Œ�w xY w)	Nr   )r   ©ÚMemoryFileSystemúfsspec not installedz$fsspec+memory://path/to/data.parquetz/path/to/data.parquetzfile:///tmp/my.filezfsspec+)Úfsspec.implementations.localr   Úfsspec.implementations.memoryrî  ÚImportErrorrÂ   rÃ   r   rH  r   r   )r   rî  rŽ   r3   Úexpected_fsrJ  r5  s          r   Útest_fsspec_filesystem_from_urirô  �  s³   € ð,Ý@ÝBô ×"Ñ"Ð#IÓJ�H€BˆÜœ}Ñ-=Ó-?Ó@ÓA€KØ�ÒÐÐØÐ*Ò*Ð*Ð*ð  €CÜ×Ñ '¨#¨ Ó0�E€BˆÜœ}©_Ó->Ó?Ó@€KØ�ÒÐÑøô ò ,Ü�‰Ð*Ö+ð,ús   ‚B ÂB,Â+B,c                  ó  ‡— 	 ddl m}  t          «       «      Š‰j                  dd¬«       ‰j                  dd¬«       ‰j                  di ¬	«      5 }|j                  d
«       d d d «       ‰j                  di ¬	«      5 }|j                  d«       d d d «       ˆfd„} |d«      t        j                  k(  sJ ‚ |d«      t        j                  k(  sJ ‚ |d«      t        j                  k(  sJ ‚‰j                  «         |d«      t        j                  k(  sJ ‚ |d«      t        j                  k(  sJ ‚ |d«      t        j                  k(  sJ ‚y # t        $ r t        j                  d«       Y �Œiw xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒóxY w)Nr   rí  rï  Útest_dirTrŠ  ztest_dir/subdirztest_file.txtrØ  s   test contentztest_dir/nested_file.txts   nested contentc                 óB   •— ‰j                  | g«      d   j                  S )Nr   )rB   r<  )r3   rŽ   s    €r   Úget_typez6test_fsspec_delete_root_dir_contents.<locals>.get_type´  s!   ø€ Ø×Ñ  Ó'¨Ñ*×/Ñ/Ð/r!   )rñ  rî  rò  rÂ   rÃ   r   rS   r|   r4  r   r;   r<   r]   r=   )rî  rœ  rø  rŽ   s      @r   Ú$test_fsspec_delete_root_dir_contentsrù  ¡  sw  ø€ ð,ÝBô 
Ñ'Ó)Ó	*€Bð ‡M�M�*¨€MÔ-Ø‡M�MÐ#¨t€MÔ4à	×	Ñ	˜¸Ð	Ó	<ð &ÀØ�‰�_Ô%÷&ð 
×	Ñ	Ð9ÀBÐ	Ó	Gð (È6Ø�‰Ð&Ô'÷(ô0ñ �OÓ$¬¯©Ò5Ð5Ð5Ù�JÓ¤8×#5Ñ#5Ò5Ð5Ð5ÙÐ.Ó/´8·=±=Ò@Ð@Ð@ð ×ÑÔ!ñ �OÓ$¬×(9Ñ(9Ò9Ð9Ð9Ù�JÓ¤8×#4Ñ#4Ò4Ð4Ð4ÙÐ.Ó/´8×3DÑ3DÒDÐDÑDøô; ò ,Ü�‰Ð*×+ð,ú÷&ñ &ú÷(ð (ús)   ƒE ÁE6Á?FÅE3Å2E3Å6F ÆFc                  ó  — t        j                  d«       	 ddlm}  t        j                  d«      \  }}t        t          «       «      «      }||k(  sJ ‚|dk(  sJ ‚y # t        $ r t        j
                  d«       Y Œ`w xY w)Nrò   r   )ÚHfFileSystemzhuggingface_hub not installedzFhf://datasets/stanfordnlp/imdb/plain_text/train-00000-of-00001.parquetzAdatasets/stanfordnlp/imdb/plain_text/train-00000-of-00001.parquet)
rÂ   rô   Úhuggingface_hubrû  rò  rÃ   r   rH  r   r   )rû  rŽ   r3   ró  s       r   Ú$test_huggingface_filesystem_from_urirý  Ä  s   € Ü
×Ñ˜Ô!ð5Ý0ô ×"Ñ"ØPó�H€Bˆô œ}©\«^Ó<Ó=€KØ�ÒÐÐØÐVÒVÐVÑVøô ò 5Ü�‰Ð3Ö4ð5ús   —A ÁA>Á=A>)”r   r   r   rÀ  r‘  r}  Úurllib.requestr   rË  rÍ  rß  rÂ   ru  r¾   ro   Úpyarrow.tests.test_ior   Úpyarrow.tests.utilr   r	   r
   r   rÀ   r   r   r   r   r   r   r   r   r   r   r   Úpyarrow.utilr   r3   ÚdirnameÚabspathrã  rÜ  r   Úfixturer–   r™   rŸ   r¢   r§   r«   rÊ   rÔ   r×   r1  rç   ré   r÷   rý   r  r	  ÚmarkrÌ   r­   rÙ   r
  rŽ   r�   r�   r‘   r  r  r  r'  r*  r7  rC  rF  rO  rQ  rX  rd  rp  rs  ru  r  r‡  r”  r—  r�  r£  r¥  r«  r­  r±  r´  r¶  r¸  r»  ÚparametrizeÚcompressrÆ  rÌ  rÎ  Ú
decompressrÑ  rÕ  rÜ  rß  rá  rê  rì  rÿ  r  r%  r,  r:  rV  r[  r]  ra  re  rh  rl  rq  rs  rx  rz  r|  r  rƒ  r†  r‰  r�  r—  r�  r¡  r±  rÇ  rÑ  rÓ  Ú	processesÚ	threadingrÕ  rÃ   Úskipifrë  rô  rù  rý  r.   r!   r   ú<module>r     s^	  ð÷$ 3Ñ 2Û Û 	Û Ý "Û Û 
Û ã Û ã Ý 7÷6ó 6÷$÷ $÷ $ñ $õ (ð 
‡w�w‡��r—w‘w—‘ xÓ0Ó1€ôf'Ð$ô f'ðR ‡�ñó ðð ‡�ñó ðð ‡�ñó ðð ‡�ñó ðð ‡�ñó ðð ‡�ñó ðð ‡�ñó ðð: ‡�ñó ðð4 ‡�ñó ððÐ ð@ ‡�ñó ðð8 ‡�ñó ðð$ ‡�ñó ðð ‡�ñó ðð ‡�ñó ðð, €‡�Ø€F‡L�LØØôð €F‡L�LØØ+ôð €F‡L�LØØ1ôð €F‡L�LØØØ�k‰k�n‰nôð
 €F‡L�LØØØ�k‰k�o‰oôð
 €F‡L�LØØØ�k‰k×Ñôð
 €F‡L�LØØØ�k‰k×Ñôð
 €F‡L�LØØôð €F‡L�LØØ:ôð €F‡L�LØØ:ôð €F‡L�LØØBôð €F‡L�LØØEôð €F‡L�LØØ=Ø�k‰k�n‰nôðk:ô :ñv2ów:ðv2ð ‡�ñ#ó ð#ð ‡�ñ'ó ð'ð ‡�ñ/ó ð/ð ‡�ñ5ó ð5ò	2ò&ò
ò>ò
#ð
 ‡�‡�ñ 5ó ð 5òFò:ò
Oò(òKò ò(ò,"ò-ò ò8+òv5 òpò"ò.ò@ò$ò.(ò
	òò(ò(ò$ð ‡�×ÑØ‡�×ÑØ0à	ˆt�XÐØ	ˆr�8ÐØ	��t—}‘}Ð%Ø	��d—m‘mÐ$ð	óñ
óó ð
ò&ò& ð ‡�×ÑØ‡�×ÑØ2à	ˆt�XÐØ	ˆr�8ÐØ	��t—‘Ð'Ø	��d—o‘oÐ&ð	óñ	)óó ð	)ð ‡�×ÑØ‡�×ÑØ@à	ˆt�X˜xÐ(Ø	ˆr�8˜XÐ&Ø	��t—}‘} d§o¡oÐ6Ø	��d—m‘m T§_¡_Ð5ð	óñ;óó ð;ò0"ò.#ò.ò(òð ‡�‡�ñ"Bó ð"BðJ ‡�‡�ñd7ó ðd7ðN ‡�‡�ñI3ó ðI3ðX ‡�‡�ñ'ó ð'ð. ‡�×ÑñZó ðZðz ‡�×ÑñD1ó ðD1ðN ‡�×ÑÐCð ˆo˜rÐ"Ø�_ iÐ0Ø�o yÐ1Ø˜¨Ð3Ø! ?°NÐCØˆ Ð$Ø� #Ð&Ø�o zÐ2Ø˜¨Ð4Ø! ?°OÐDàˆ/˜3ÐØ� *Ð-Ø˜Ð*<Ð=ð!Fó ñ$!ó%ð$!òð" ‡�×ÑØ
Øˆˆi˜ XÐ.óñ5ó	ð5ð ‡�‡�ñ+ó ð+ð$ ‡�‡�ñ+ó ð+ò&òò(	-òò*"ò.,ò:3ò()ò'òòð ‡�‡�ñFó ðFð. ‡�‡�ñó ððB ‡�‡�ñ'ó ð'ð ‡�‡�ñ1#ó ð1#òh0)ðf ‡�‡�ñ8ó ð8ð6 ‡�‡�ñ8ó ð8ð& ‡�×ÒØ‡�×ÒØ‡�‡�ñ8ó ó ó ð8ð, ‡�‡�Ø‡�×Òð 6Ðó 7à‡�×ÒÑ(Ó*ð 4TÐó UñóUó7ó ð
ò@ò( EóFWr!   