ó
    ëBjïí  ã                   ó(  • % S SK r S SKJr  S SKrS SKJr  S SKJrJrJ	r	J
r
Jr  S SKrS SKJrJrJrJr  S SKrS SKrS SKJr  S SKJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(  S SK)J*r*  S S	K+J,r,  \%(       a  S S
K-J.r.J/r/J0r0J1r1J2r2  \Rf                  S:¼  a  S SKJ4r4  OS SK5J4r4  \Rf                  S:¼  a  S SKJ6r6  OS SK5J6r6  \Rf                  S:  a  S SKJ7r7  S SKJ8r9  S SKJ:r:  S2S jr8Oj\Rf                  SS S:X  a  S SKJ:r:  S SKJ;r7  S SKJ8r8  OD\Rf                  SS S:X  a  S SK<J:r:  S SK;r7SSK=J8r8  O \Rf                  S:¼  a  S SKJ:r:  S SK;r7SSK=J8r8  S SK>J?r?  SSK@JArA  SSKBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrNJOrOJPrPJQrQ  \%(       a  SSKRJSrS  SSKTJUrU   " S S5      rV\" \V5      rW\\X\V4   \YS '   \&" S!5      rZ\&" S"S#S$9r[S%\XS&\\$\[   /\$\[   4   4S' jr\ " S( S)\ Rº                  5      r^ " S* S#\^S+9r_S,\S&\X4S- jr` " S. S/5      ra " S0 S15      rbg)3é    N©Údefaultdict)Úcontextmanager)ÚBufferedRandomÚBufferedReaderÚBufferedWriterÚFileIOÚTextIOWrapper)ÚPathÚ	PosixPathÚPurePosixPathÚWindowsPath)Ú
MethodType)ÚBinaryIOÚLiteralÚoverloadÚAnyÚCallableÚ	ContainerÚIterableÚIOÚDictÚ	GeneratorÚListÚOptionalÚTupleÚTypeÚTYPE_CHECKINGÚTypeVarÚUnionÚcast)Úurlparse)Úwarn)ÚOpenBinaryModeÚOpenBinaryModeReadingÚOpenBinaryModeUpdatingÚOpenBinaryModeWritingÚOpenTextMode)é   é
   )Ú	TypeGuard)r)   é   )ÚSelf©r)   é   )Ú_posix_flavour)Ú_make_selector)Ú_PathParentsc                 ó,   • [        [        U 5      U5      $ ©N)Ú_make_selector_pathlibÚtuple)Úpattern_partsÚ_flavourÚcase_sensitives      ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/cloudpathlib/cloudpath.pyr1   r1   A   s   € Ü%¤e¨MÓ&:¸HÓEÐEó    é   )Ú	posixpath©r)   é   é   )r)   é   )ÚFileCacheMode)Úanypath)ÚClientMismatchErrorÚCloudPathFileExistsErrorÚCloudPathFileNotFoundErrorÚCloudPathIsADirectoryErrorÚCloudPathNotADirectoryErrorÚCloudPathNotExistsErrorÚCloudPathNotImplementedErrorÚDirectoryNotEmptyErrorÚIncompleteImplementationErrorÚInvalidPrefixErrorÚMissingDependenciesErrorÚNoStatErrorÚOverwriteDirtyFileErrorÚOverwriteNewerCloudErrorÚOverwriteNewerLocalError)ÚClient©ÚCloudPathInfoc                   ó”   • \ rS rSr% \\S'   Sr\\S'   \S   \S'   \S   \S'   SS jr	\
S	\S   4S j5       r\
S	\S   4S j5       rSrg
)ÚCloudImplementationén   ÚnameTÚdependencies_loadedrS   Ú_client_classÚ	CloudPathÚ_path_classÚreturnNc                 ó
  • SS/nU Vs/ s H  n[        U SU 35      b  M  UPM     nnU(       a  [        SU 35      eU R                  (       d0  [        SU R                  R
                   SU R                   S35      eg s  snf )NÚclient_classÚ
path_classÚ_z1Implementation is missing registered components: zMissing dependencies for z6. You can install them with 'pip install cloudpathlib[z]'.)ÚgetattrrL   rZ   rN   r[   Ú__name__rY   )ÚselfÚexpectedÚclsÚmissings       r:   Úvalidate_completenessÚ)CloudImplementation.validate_completenesst   s—   € Ø" LÐ1ˆÙ"*ÓO¢(˜3¬g°d¸aÀ¸u¸IÓ.F—3¡(ˆÐOÞÜ/ØCÀGÀ9ÐMóð ð ×'×'Ü*Ø+¨D×,>Ñ,>×,GÑ,GÐ+Hð I2Ø26·)±)°¸CðAóð ð (ùò Ps
   ‰B ¡B c                 ó:   • U R                  5         U R                  $ r4   )ri   r[   ©re   s    r:   r`   Ú CloudImplementation.client_class�   s   € à×"Ñ"Ô$Ø×!Ñ!Ð!r;   c                 ó:   • U R                  5         U R                  $ r4   )ri   r]   rl   s    r:   ra   ÚCloudImplementation.path_class†   s   € à×"Ñ"Ô$Ø×ÑÐr;   © ©r^   N)rd   Ú
__module__Ú__qualname__Ú__firstlineno__ÚstrÚ__annotations__rZ   Úboolr   ri   Úpropertyr`   ra   Ú__static_attributes__rp   r;   r:   rW   rW   n   sk   ‡ Ø
ƒIØ $Ð˜Ó$Ø˜‘>Ó!Ø�kÑ"Ó"ôð ð"˜d 8™nó "ó ð"ð ð ˜D Ñ-ó  ó ó r;   rW   Úimplementation_registryÚTÚ
CloudPathTr\   )ÚboundÚkeyr^   c                 óL   ^ • S[         [           S[         [           4U 4S jjnU$ )Nrg   r^   c                 ó€   >• [        U [        5      (       d  [        S5      eU [        T   l        [        T   U l        U $ )Nz/Only subclasses of CloudPath can be registered.)Ú
issubclassr\   Ú	TypeErrorrz   r]   Ú_cloud_meta)rg   r~   s    €r:   Ú	decoratorÚ&register_path_class.<locals>.decorator”   s;   ø€ Ü˜#œy×)Ñ)ÜÐMÓNÐNØ36Ô Ñ$Ô0Ü1°#Ñ6ˆŒØˆ
r;   )r   r|   )r~   r„   s   ` r:   Úregister_path_classr†   “   s(   ø€ ð”tœJÑ'ð ¬D´Ñ,<÷ ð Ðr;   c                   óâ   • \ rS rSr\S\\   S\S\S\S\4
S j5       r	\S\\   S\
\S4   S\S\S\4
S	 j5       r	S\\   S\
\\4   S\S\S\
\S\4   4
S
 jr	S\S\\S4   S\\\4   SS4S jrSrg)ÚCloudPathMetaéž   rg   Ú
cloud_pathÚargsÚkwargsr^   c                 ó   • g r4   rp   ©rg   rŠ   r‹   rŒ   s       r:   Ú__call__ÚCloudPathMeta.__call__Ÿ   s   € ð r;   r\   c                 ó   • g r4   rp   rŽ   s       r:   r�   r�   ¤   s   € ð r;   c                 ón  • [        U [        5      (       d  [        S[        R                   S35      eU [        L aÉ  [        R                  5        HX  nUR                  nUc  M  UR                  USS9(       d  M+  [        R                  U5      nUR                  " Xa/UQ70 UD6  Us  $    [        R                  5        Vs/ s H(  nUR                  c  M  UR                  R                  PM*     nn[        SU SU S35      e[        R                  U 5      nU R                  " Xa/UQ70 UD6  U$ s  snf )NzOnly subclasses of z) can be instantiated from its meta class.F©Úraise_on_errorúPath z$ does not begin with a known prefix Ú.)r�   r\   r‚   rd   rz   Úvaluesr]   Úis_valid_cloudpathÚobjectÚ__new__Ú__init__Úcloud_prefixrM   )	rg   rŠ   r‹   rŒ   Úimplementationra   Únew_objÚimplÚvalid_prefixess	            r:   r�   r�   ©   sA  € ô ˜#œy×)Ñ)ÜØ%¤i×&8Ñ&8Ð%9Ð9bÐcóð ð
 ”)ÒÜ"9×"@Ñ"@Ö"B�Ø+×7Ñ7�
ØÓ)¨j×.KÑ.KØ¨uð /L÷ /ð /ô %Ÿn™n¨ZÓ8�GØ×'Ò'¨ÐM¸dÒMÀfÒMØ"’Nñ #Cô 4×:Ñ:Ô<óâ<�DØ×#Ñ#ó .�× Ñ ×-Ô-Ù<ð ð ô
 %Ø˜
�|Ð#GÈÐGWÐWXÐYóð ô —.‘. Ó%ˆØ�Š�WÐ:¨4Ò:°6Ò:Øˆùòs   ÃD2ÃD2rY   Úbases.ÚdicNc                 ó
  • [        U 5       Hô  nUR                  S5      (       a  M  [        [        U5      (       d  M2  [	        [	        [        U5      SS 5      (       d  MT  [	        [        U5      R
                  S-   n[        [	        X5      [        5      (       a  U[	        X5      R                  l        OU[	        X5      l        [        [	        X5      [        5      (       d  MÚ  U[	        X5      R                  l        Mö     g )Nrb   Ú__doc__z' _(Docstring copied from pathlib.Path)_)ÚdirÚ
startswithÚhasattrr   rc   r¤   Ú
isinstancer   Ú__func__rx   Úfget)rg   rY   r¡   r¢   ÚattrÚ	docstrings         r:   r›   ÚCloudPathMeta.__init__Ê   s´   € ä˜–HˆDà—O‘O C×(Ó(ÜœD $×'Ó'ÜœG¤D¨$Ó/°¸D×AÓAä#¤D¨$Ó/×7Ñ7Ð:cÑc�	äœg cÓ0´:×?Ñ?Ø:C”G˜CÓ&×/Ñ/Õ7à1:”G˜CÓ&Ô.äœg cÓ0´(×;Ó;ð 7@”G˜CÓ&×+Ñ+Ö3ò! r;   rp   )rd   rr   rs   rt   r   r   r{   r|   r   r�   r    ru   r   Útyper   r›   ry   rp   r;   r:   rˆ   rˆ   ž   s	  † ØðØ�!‰WðØ",ðØ58ðØDGðà	óó ðð ðØ�!‰WðØ"'¨¨[Ð(8Ñ"9ðØBEðØQTðà	
óó ððØ�!‰WðØ"'¨¨Z¨Ñ"8ðØADðØPSðà	ˆq�+˜zÐ)Ñ	*ôðB@˜Cð @¨¨d°C¨iÑ(8ð @¸tÀCÈÀH¹~ð @ÐRV÷ @r;   rˆ   c                   ón  • \ rS rSr% Sr\\S'   \\S'   SS.S\\\	S 4   S\S	\
S
   SS4S jjr\S 5       rS½S jrS\\\4   4S jrS\\\4   SS4S jr\S\4S j5       r\S\4S j5       r\\ S¾SS S\S\\	   4S jj5       5       r\\S¾S\S\S\4S jj5       5       r\ S¿S\\S 4   S\S\\\\	   4   4S jj5       rS\4S jrS\4S jrS\4S jrS\S\4S jrS\4S jrS\S\4S  jr S\S\4S! jr!S\S\4S" jr"S\S\4S# jr#\\$RJ                  S\4S$ j5       5       r&\$RJ                   SÀS%\S&\S'\
\   SS4S( jj5       r'\$RJ                  SÁS&\S'\
\   SS4S) jj5       r(SÂS*\S+\S\4S, jjr)S\SS4S- jr*\S\4S. j5       r+S\4S/ jr,SÃS\4S0 jjr-SÃS\4S1 jjr.SÃS\4S2 jjr/\S\4S3 j5       r0\S4\S\	4S5 j5       r1S6\\\2Rf                  4   S\4S7 jr4S8 r5S9\S\6\	SS4   4S: jr7  SÄS6\\\2Rf                  4   S;\
\   S<\S\6\	SS4   4S= jjr8  SÄS6\\\2Rf                  4   S;\
\   S<\S\6\	SS4   4S> jjr9S\6\	SS4   4S? jr:\;SÃS@ j5       r<   SÅSA\SB\
\=   SC\S\6\>\	\?\   \?\   4   SS4   4SD jjr@\       SÆS'SESF\SG\
\   SH\
\   SI\
\   SJ\
\   SK\
\   SSL4SM jj5       rA\     SÇS'SNSF\BSO   SGSSHSSISSJ\
\   SK\
\   SSP4SQ jj5       rA\      SÈS'SRSF\BSS   SGSSHSSISSJ\
\   SK\
\   SST4SU jj5       rA\      SÈS'SVSF\BSS   SGSSHSSISSJ\
\   SK\
\   SSW4SX jj5       rA\      SÈS'SYSF\BSS   SGSSHSSISSJ\
\   SK\
\   SSZ4S[ jj5       rA\      SÈS'SNSF\SGSSHSSISSJ\
\   SK\
\   SS\4S] jj5       rA\      SÈS'\SF\SG\
\   SH\
\   SI\
\   SJ\
\   SK\
\   SS^4S_ jj5       rA       SÆS'\SF\SG\
\   SH\
\   SI\
\   SJ\
\   SK\
\   SS^4S` jjrASa\	S\	4Sb jrCSa\	S\	4Sc jrDS½Sd jrESe\\\2Rf                  4   S\4Sf jrFSÃSg\SS4Sh jjrGSi\HS\4Sj jrI   SÉSi\SG\
\   SH\
\   SI\
\   S\4
Sk jjrJS\H4Sl jrK   SÉSG\
\   SH\
\   SI\
\   S\4Sm jjrLSn rMSo\S\4Sp jrNS\\\O4   S\	4Sq jrPSr\\\2Rf                  4   S\	4Ss jrQS\	4St jrRS\4Su jrSS¿Sv\S\	4Sw jjrTS¿S\	Sx\S\O4Sy jjrUS\	S\4Sz jrV\S\4S{ j5       rWSÊS6\S;\
\   S\4S| jjrXSÊS}\S;\
\   S\4S~ jjrY\S\	4S j5       rZ\S\	4S€ j5       r[\S\>\	S4   4S� j5       r\\S\>\S4   4S‚ j5       r]\S\4Sƒ j5       r^\S\4S„ j5       r_\S\?\   4S… j5       r`S†\S\	4S‡ jraSˆ\S\	4S‰ jrbS\	4SŠ jrcS‹\S\	4SŒ jrdSo\S\4S� jreSÃSC\S\2RÌ                  4SŽ jjrgSËS� jrhS�\\\2Rf                  4   S\i4S‘ jrjS½S’ jrk SÊS“\\\2Rf                  4   SK\
\   S\	4S” jjrl    SÌSa\\\2Rf                  S 4   SC\S•\SK\
\   S–\S\\i\	4   4S— jjrm\   SÍSa\	SK\
\   S\	4S˜ jj5       rn\   SÍSa\iSK\
\   S\i4S™ jj5       rn\   SÍSa\SK\
\   S\\iS 4   4Sš jj5       rn   SÍSa\\\2Rf                  \	4   SC\S•\SK\
\   S\\i\	4   4
S› jjrn\   SÍSœ\	SC\S•\SK\
\   S\	4
S� jj5       ro\   SÍSœ\iSC\S•\SK\
\   S\i4
Sž jj5       ro\   SÍSœ\SC\S•\SK\
\   S\\iS 4   4
SŸ jj5       ro   SÍSœ\\\2Rf                  \	4   SC\S•\SK\
\   S\\i\	4   4
S  jjro\  SÎS�\	SK\
\   S¡\
\=\\p\   /\q\   4      S\	4S¢ jj5       rr\  SÎS�\iSK\
\   S¡\
\=\\p\   /\q\   4      S\i4S£ jj5       rr\  SÎS�\\\2Rf                  \	4   SK\
\   S¡\
\=\\p\   /\q\   4      S\\iS 4   4S¤ jj5       rrSÎS¥ jrr\   SÍSa\	SC\S•\SK\
\   S\	4
S¦ jj5       rs\   SÍSa\iSC\S•\SK\
\   S\i4
S§ jj5       rs\   SÍSa\SC\S•\SK\
\   S\\iS 4   4
S¨ jj5       rs   SÍSa\\\2Rf                  \	4   SC\S•\SK\
\   S\\i\	4   4
S© jjrs\   SÍSœ\	SC\S•\SK\
\   S\	4
Sª jj5       rt\   SÍSœ\iSC\S•\SK\
\   S\i4
S« jj5       rt\   SÍSœ\SC\S•\SK\
\   S\\iS 4   4
S¬ jj5       rt   SÍSœ\\\2Rf                  \	4   SC\S•\SK\
\   S\\i\	4   4
S­ jjrtS® ru\S\i4S¯ j5       rvS\\\2Rf                  4   S\S\	4S° jrwSÊSJ\
\   SS4S± jjrx SÊSK\
\   S\	4S² jjry SÊS³\iSK\
\   S\	4S´ jjrz\Sµ\4S¶ j5       r{\S·\S\	4S¸ j5       r|\S\6\=\/\	4   SS4   4S¹ j5       r}\Sº\S\	4S» j5       r~S¼rg)Ïr\   éà   aj  Base class for cloud storage file URIs, in the style of the Python standard library's
[`pathlib` module](https://docs.python.org/3/library/pathlib.html). Instances represent a path
in cloud storage with filesystem path semantics, and convenient methods allow for basic
operations like joining, reading, writing, iterating over contents, etc. `CloudPath` almost
entirely mimics the [`pathlib.Path`](https://docs.python.org/3/library/pathlib.html#pathlib.Path)
interface, so most familiar properties and methods should be available and behave in the
expected way.

Analogous to the way `pathlib.Path` works, instantiating `CloudPath` will instead create an
instance of an appropriate subclass that implements a particular cloud storage service, such as
[`S3Path`](../s3path). This dispatching behavior is based on the URI scheme part of a cloud
storage URI (e.g., `"s3://"`).
rƒ   rœ   N)ÚclientrŠ   Úpartsr±   rS   r^   c          	      óè  • S U l         S U l        U(       aQ  [        U5      R                  S5      (       d  [        U5      S-   n[        U5      SR	                  S U 5       5      -   nU R                  USS9  U R                  R                  5         [        U5      U l        [        U R                  5      U l
        [        SU R                   35      U l        Uc'  [        U[        5      (       a  UR                   U l        OX l        Uba  [        X R                  R"                  5      (       d=  [%        SUR&                   SU R&                   SU R                  R"                   S35      eS	U l        g )
NÚ/c              3   óB   #   • U  H  oR                  S 5      v •  M     g7f)r´   N)Ústrip©Ú.0Úps     r:   Ú	<genexpr>Ú%CloudPath.__init__.<locals>.<genexpr>  s   é € Ð3PÊ%ÀQ·G±G¸C·L°LÊ%ùs   ‚Tr“   zClient of type [z'] is not valid for cloud path of type [z]; must be instance of [z;], or None to use default client for this cloud path class.F)Ú_handleÚ_clientru   ÚendswithÚjoinr˜   rƒ   ri   Ú_strr"   Ú_urlr   Ú
_no_prefixÚ_pathr¨   r\   r±   r`   rD   Ú	__class__Ú_dirty)re   rŠ   r±   r²   s       r:   r›   ÚCloudPath.__init__ò   sF  € ð &*ˆŒØ+/ˆŒæä�z“?×+Ñ+¨C×0Ñ0Ü  ›_¨sÑ2�
ä˜Z›¨3¯8©8Ñ3PÉ%Ó3PÓ+PÑPˆJà×Ñ 
¸4ÐÑ@Ø×Ñ×.Ñ.Ô0ô ˜
“OˆŒ	Ü˜TŸY™YÓ'ˆŒ	Ü" Q t§¡Ð&7Ð#8Ó9ˆŒ
ð ‰>Ü˜*¤i×0Ñ0Ø)×0Ñ0�”øà!ŒLàÑ¤j°×9IÑ9I×9VÑ9V×&WÑ&WÜ%Ø" 6×#3Ñ#3Ð"4ð 5Ø—N‘NÐ#Ð#;¸D×<LÑ<L×<YÑ<YÐ;Zð [HðIóð ð ˆ�r;   c                 óˆ   • [        U SS 5      c)  U R                  R                  R                  5       U l        U R                  $ ©Nr½   )rc   rƒ   r`   Úget_default_clientr½   rl   s    r:   r±   ÚCloudPath.client  s7   € ä�4˜ DÓ)Ñ1Ø×+Ñ+×8Ñ8×KÑKÓMˆDŒLà�|‰|Ðr;   c                 ó
  • U R                   b9  U R                  R                  5       (       a  U R                   R                  5         [	        U SS 5      n[	        USS 5      [
        R                  :X  a  U R                  5         g g )Nr½   Úfile_cache_mode)r¼   Ú_localÚexistsÚcloserc   rB   Úcloudpath_objectÚclear_cache)re   r±   s     r:   Ú__del__ÚCloudPath.__del__$  sh   € à�<‰<Ñ#¨¯©×(:Ñ(:×(<Ñ(<Ø�L‰L×ÑÔ ô ˜˜y¨$Ó/ˆÜ�6Ð,¨dÓ3´}×7UÑ7UÓUØ×ÑÕð Vr;   c                 óL   • U R                   R                  5       nSU;   a  US	 U$ rÈ   )Ú__dict__Úcopy©re   Ústates     r:   Ú__getstate__ÚCloudPath.__getstate__.  s+   € Ø—‘×"Ñ"Ó$ˆð ˜ÓØ�iÐ àˆr;   rØ   c                 ó:   • U R                   R                  U5        g r4   )rÕ   Úupdater×   s     r:   Ú__setstate__ÚCloudPath.__setstate__7  s   € Ø�‰×Ñ˜UÕ#r;   c                 óF   • U R                   [        U R                  5      S  $ r4   )rÀ   ÚlenÚanchorrl   s    r:   rÂ   ÚCloudPath._no_prefix:  s   € à�y‰yœ˜TŸ[™[Ó)Ð+Ð,Ð,r;   c                 ór   • U R                   [        U R                  5      [        U R                  5      -   S  $ r4   )rÀ   rà   rá   Údriverl   s    r:   Ú_no_prefix_no_driveÚCloudPath._no_prefix_no_drive>  s*   € à�y‰yœ˜TŸ[™[Ó)¬C°·
±
«OÑ;Ð=Ð>Ð>r;   .Úpathr”   c                 ó   • g r4   rp   ©rg   rç   r”   s      r:   r˜   ÚCloudPath.is_valid_cloudpathB  s   € ð r;   c                 ó   • g r4   rp   ré   s      r:   r˜   rê   H  s   € àPSr;   c                 óÚ   • [        U5      R                  5       R                  U R                  R                  5       5      nU(       a#  U(       d  [	        SU SU R                   S35      eU$ )NÚ'z4' is not a valid path since it does not start with ')ru   Úlowerr¦   rœ   rM   )rg   rç   r”   Úvalids       r:   r˜   rê   L  sb   € ô �D“	—‘Ó!×,Ñ,¨S×-=Ñ-=×-CÑ-CÓ-EÓFˆæ¦%Ü$Ø�D�6ÐMÈc×N^ÑN^ÐM_Ð_`Ðaóð ð ˆr;   c                 ó:   • U R                   R                   SU  S3$ )Nz('z'))rÄ   rd   rl   s    r:   Ú__repr__ÚCloudPath.__repr__Y  s    € Ø—.‘.×)Ñ)Ð*¨"¨T¨F°"Ð5Ð5r;   c                 ó   • U R                   $ r4   )rÀ   rl   s    r:   Ú__str__ÚCloudPath.__str__\  s   € Ø�y‰yÐr;   c                 óT   • [        [        U 5      R                  [        U 5      45      $ r4   )Úhashr®   rd   ru   rl   s    r:   Ú__hash__ÚCloudPath.__hash___  s    € Ü”T˜$“Z×(Ñ(¬#¨d«)Ð4Ó5Ð5r;   Úotherc                 óh   • [        U[        U 5      5      =(       a    [        U 5      [        U5      :H  $ r4   )r¨   r®   ru   ©re   rú   s     r:   Ú__eq__ÚCloudPath.__eq__b  s%   € Ü˜%¤ d£Ó,×H´°T³¼cÀ%»jÑ1HÐHr;   c                 óv   • U R                  5       (       a  U R                  5         [        U R                  5      $ r4   )Úis_fileÚ_refresh_cacheru   rÍ   rl   s    r:   Ú
__fspath__ÚCloudPath.__fspath__e  s(   € Ø�<‰<�>‰>Ø×ÑÔ!Ü�4—;‘;ÓÐr;   c                 ót   • [        U[        U 5      5      (       d  [        $ U R                  UR                  :  $ r4   ©r¨   r®   ÚNotImplementedr²   rü   s     r:   Ú__lt__ÚCloudPath.__lt__j  ó,   € Ü˜%¤ d£×,Ñ,Ü!Ð!Ø�z‰z˜EŸK™KÑ'Ð'r;   c                 ót   • [        U[        U 5      5      (       d  [        $ U R                  UR                  :*  $ r4   r  rü   s     r:   Ú__le__ÚCloudPath.__le__o  ó,   € Ü˜%¤ d£×,Ñ,Ü!Ð!Ø�z‰z˜UŸ[™[Ñ(Ð(r;   c                 ót   • [        U[        U 5      5      (       d  [        $ U R                  UR                  :„  $ r4   r  rü   s     r:   Ú__gt__ÚCloudPath.__gt__t  r	  r;   c                 ót   • [        U[        U 5      5      (       d  [        $ U R                  UR                  :¬  $ r4   r  rü   s     r:   Ú__ge__ÚCloudPath.__ge__y  r  r;   c                 ó   • g)zVFor example "bucket" on S3 or "container" on Azure; needs to be defined for each classNrp   rl   s    r:   rä   ÚCloudPath.drive˜  s   € ð 	r;   ÚparentsÚexist_okÚmodec                 ó   • g)zPShould be implemented using the client API without requiring a dir is downloadedNrp   )re   r  r  r  s       r:   ÚmkdirÚCloudPath.mkdirž  s   € ð
 	r;   c                 ó   • g)zMShould be implemented using the client API to create and update modified timeNrp   )re   r  r  s      r:   ÚtouchÚCloudPath.touch¥  s   € ð 	r;   ÚpresignÚexpire_secondsc                 ó€   • U(       a  U R                   R                  XS9nU$ U R                   R                  U 5      nU$ )N)r   )r±   Ú_generate_presigned_urlÚ_get_public_url)re   r  r   Úurls       r:   Úas_urlÚCloudPath.as_urlª  s>   € ÞØ—+‘+×5Ñ5°dÐ5ÐZˆCð ˆ
ð —+‘+×-Ñ-¨dÓ3ˆCØˆ
r;   c                 ó   • [        S5      e)NzZCannot change a cloud path's root since all paths are absolute; create a new path instead.)Ú
ValueErrorrü   s     r:   Ú__rtruediv__ÚCloudPath.__rtruediv__³  s   € ÜØhó
ð 	
r;   c                 ó   • U R                   $ r4   )rœ   rl   s    r:   rá   ÚCloudPath.anchor¸  s   € à× Ñ Ð r;   c                 ó   • [        U 5      $ r4   ©ru   rl   s    r:   Úas_uriÚCloudPath.as_uri¼  s   € Ü�4‹yÐr;   c                 ó8   • U R                   R                  U 5      $ r4   )r±   Ú_exists©re   Úfollow_symlinkss     r:   rÎ   ÚCloudPath.exists¿  s   € Ø�{‰{×"Ñ" 4Ó(Ð(r;   c                 ó>   • U R                   R                  U 5      S:H  $ )Nr¥   ©r±   Ú_is_file_or_dirr3  s     r:   Úis_dirÚCloudPath.is_dirÂ  s   € Ø�{‰{×*Ñ*¨4Ó0°EÑ9Ð9r;   c                 ó>   • U R                   R                  U 5      S:H  $ )NÚfiler7  r3  s     r:   r   ÚCloudPath.is_fileÅ  s   € Ø�{‰{×*Ñ*¨4Ó0°FÑ:Ð:r;   c                 ó"   • U R                  5       $ r4   )r  rl   s    r:   ÚfspathÚCloudPath.fspathÈ  s   € à�‰Ó Ð r;   Úuric                 ó   • U " U5      $ r4   rp   )rg   rA  s     r:   Úfrom_uriÚCloudPath.from_uriÌ  s   € á�3‹xˆr;   Úpatternc                 óÂ  • [        U[        R                  5      (       aG  [        U[        5      (       a  [	        UR                  U 5      5      nO"[        R                  " U5      nO[	        U5      nSU;   a  [        S5      eUR                  U R                  5      (       d  UR                  S5      (       a  [        S5      eU R                  S:X  a  [        S5      eU$ )Nú..z8Relative paths with '..' not supported in glob patterns.r´   z%Non-relative patterns are unsupportedÚ z‡.glob is only supported within a bucket or container; you can use `.iterdir` to list buckets; for example, CloudPath('s3://').iterdir())r¨   ÚosÚPathLiker\   ru   Úrelative_tor?  rJ   r¦   rœ   rä   )re   rE  Ústr_patterns      r:   Ú_glob_checksÚCloudPath._glob_checksÐ  sÀ   € Ü�gœrŸ{™{×+Ñ+Ü˜'¤9×-Ñ-Ü! '×"5Ñ"5°dÓ";Ó<‘ä Ÿiši¨Ó0‘ä˜g›,ˆKà�;ÓÜ.ØJóð ð ×!Ñ! $×"3Ñ"3×4Ñ4¸×8NÑ8NÈs×8SÑ8SÜ.Ð/VÓWÐWà�:‰:˜ÓÜ.ð Zóð ð Ðr;   c                 óH  ^^• U4S jmUU4S jmT" 5       nU R                   R                  XS9 He  u  p4[        UR                  U 5      5      R	                  S5      n[        U5      S:X  a  US   S:X  a  MH  S U 5       nT" U[        US 5      Xd5        Mg     [        U5      $ )	Nc                  ó   >• [        T 5      $ r4   r   )ÚTrees   €r:   Ú<lambda>Ú*CloudPath._build_subtree.<locals>.<lambda>ê  s
   ø€ ¤¨TÔ!2r;   c                 ób   >• [        US5      nUc  U(       a  T" 5       OSX'   gT" X   XBU5        g)z]Utility to build a tree from nested defaultdicts with a generator
of nodes (parts) of a path.N)Únext)ÚtrunkÚbranchÚnodesr9  Únext_branchrQ  Ú_build_trees        €€r:   rZ  Ú-CloudPath._build_subtree.<locals>._build_treeì  s4   ø€ ô ˜u dÓ+ˆKàÑ"Þ*0¡¤°d�’ñ ˜E™M¨;¸vÕFr;   ©Ú	recursiver´   r@   r   r–   c              3   ó$   #   • U  H  ov •  M     g 7fr4   rp   r·   s     r:   rº   Ú+CloudPath._build_subtree.<locals>.<genexpr>   s   é € Ð&¢˜1”Q¢ùs   ‚)r±   Ú	_list_dirru   rK  Úsplitrà   rU  Údict)	re   r]  Ú	file_treeÚfr9  r²   rX  rQ  rZ  s	          @@r:   Ú_build_subtreeÚCloudPath._build_subtreeè  s—   ù€ ä2ˆö		Gñ “Fˆ	àŸ™×.Ñ.¨tÐ.ÓI‰IˆAÜ˜Ÿ™ dÓ+Ó,×2Ñ2°3Ó7ˆEô �5‹z˜Q‹ 5¨¡8¨s£?Ùá&¡Ó&ˆEÙ˜	¤4¨¨tÓ#4°eÖDñ Jô �I‹Ðr;   r]  c              #   óÞ   #   • U R                  U5      n[        U R                  / U5      nUR                  U5       H,  nU [	        U5      [        U R                  5      S-   S  -  v •  M.     g 7f)Nr@   )re  Ú_CloudPathSelectablerY   Úselect_fromru   rà   )re   Úselectorr]  rc  Úrootr¹   s         r:   Ú_globÚCloudPath._glob  sg   é € Ø×'Ñ'¨	Ó2ˆ	ä#Ø�I‰IØØó
ˆð ×%Ñ% dÖ+ˆAàœ#˜a›&¤ T§Y¡Y£°!Ñ!3Ð!5Ð6Ñ6Ô7ò ,ùs   ‚A+A-r9   Úrecurse_symlinksc              #   óÞ   #   • U R                  U5      n[        U5      R                  n[        [	        U5      [
        US9nU R                  USU;   =(       d    SU;   5       S h  v•N   g  N7f)N©r9   r´   ú**©rM  r   r²   r1   r6   r0   rl  ©re   rE  r9   rn  r7   rj  s         r:   ÚglobÚCloudPath.glob  so   é € ð ×#Ñ# GÓ,ˆä% gÓ.×4Ñ4ˆÜ!Ü�-Ó ¤.Àñ
ˆð —:‘:ØØ�7‰N÷ ØØñó
÷ 	
ó 	
ùs   ‚A#A-Á%A+Á&A-c              #   óÆ   #   • U R                  U5      n[        U5      R                  n[        S[	        U5      -   [
        US9nU R                  US5       S h  v•N   g  N7f)N)rq  rp  Trr  rs  s         r:   ÚrglobÚCloudPath.rglob&  sX   é € ð ×#Ñ# GÓ,ˆä% gÓ.×4Ñ4ˆÜ!Ø”e˜MÓ*Ñ*¬NÈ>ñ
ˆð —:‘:˜h¨Ó-×-Ó-ùs   ‚AA!ÁAÁA!c              #   óh   #   • U R                   R                  U SS9 H  u  pX:w  d  M  Uv •  M     g 7f)NFr\  )r±   r`  )re   rd  rb   s      r:   ÚiterdirÚCloudPath.iterdir5  s0   é € Ø—K‘K×)Ñ)¨$¸%Ð)Ó@‰DˆAØ�yØ”ò Aùs   ‚#2©	2c              #   ó"  #   • / n/ nUR                  5        H,  u  pVUc  UR                  U5        M  UR                  U5        M.     U(       a  XU4v •  U H$  n[        R                  X-  X   US9 Sh  v•N   M&     U(       d  XU4v •  gg N7f)zmUtility to yield tuples in the form expected by `.walk` from the file
tree constructed by `_build_substree`.
N©Útop_down)ÚitemsÚappendr\   Ú_walk_results_from_tree)rk  Útreer~  ÚdirsÚfilesÚitemrW  r¥   s           r:   r�  Ú!CloudPath._walk_results_from_tree:  s“   é € ð
 ˆØˆØ ŸJ™JžL‰LˆDØ"(¡.ˆE�L‰L˜Ö°d·k±kÀ$Ö6Gñ )ö Ø˜eÐ#Ò#ãˆCÜ ×8Ñ8¸¹ÀTÁYÐYaÐ8Ðb×bÒbñ ö Ø˜eÐ#Ó#ð ñ cùs   ‚A3BÁ5BÁ6Br~  Úon_errorr4  c              #   ó¦   #   •  U R                  SS9nU R                  XUS9 S h  v•N   g  N! [         a  nUb  U" U5         S nAg e S nAff = f7f)NTr\  r}  )re  r�  Ú	Exception)re   r~  r‡  r4  rc  Úes         r:   ÚwalkÚCloudPath.walkM  sW   é € ð	Ø×+Ñ+°dÐ+Ð;ˆIØ×3Ñ3°DÈhÐ3ÐW×WÓWøäó 	ØÑ#Ù˜—‘àûð		üs<   ‚A„". ¦,§. «A¬. ®
A¸A	ÁAÁA	Á	AÁAr(   Ú	bufferingÚencodingÚerrorsÚnewlineÚforce_overwrite_from_cloudÚforce_overwrite_to_cloudr
   c                 ó   • g r4   rp   ©re   r  r�  rŽ  r�  r�  r‘  r’  s           r:   ÚopenÚCloudPath.open]  s   € ð r;   r$   r   r	   c                 ó   • g r4   rp   r”  s           r:   r•  r–  i  s   € ð r;   r&   )éÿÿÿÿr@   r   c                 ó   • g r4   rp   r”  s           r:   r•  r–  u  ó   € ð r;   r'   r   c                 ó   • g r4   rp   r”  s           r:   r•  r–  �  rš  r;   r%   r   c                 ó   • g r4   rp   r”  s           r:   r•  r–  �  rš  r;   r   c                 ó   • g r4   rp   r”  s           r:   r•  r–  ™  s   € ð r;   zIO[Any]c                 ó   • g r4   rp   r”  s           r:   r•  r–  ¥  s   € ð r;   c                 ór  ^ ^^^^^• T R                  5       nU(       a$  T R                  5       (       d  [        ST  S35      eU(       d(  [        U4S jS 5       5      (       a  [	        ST  35      eTS:X  a$  T R                  5       (       a  [        ST  S35      eT R                  US	9  T R                  R                  5       (       d'  T R                  R                  R                  S
S
S9  SmO$T R                  R                  5       R                  mT R                  R                  TUUUUS9n	[        U4S jS 5       5      (       a+  U	R                  mSUUU U4S jjn
X©l        U	T l        S
T l        T R                   R"                  [$        R&                  :X  a  U	R                  mU U4S jnX¹l        U	$ )Nz2Cannot open directory, only files. Tried to open (Ú)c              3   ó,   >#   • U  H	  oT;   v •  M     g 7fr4   rp   ©r¸   Úmr  s     €r:   rº   Ú!CloudPath.open.<locals>.<genexpr>Ã  s   øé € Ð&Eº*°Q¨D¦yº*ùó   ƒ)ÚrÚaz@File opened for read or append, but it does not exist on cloud: ÚxzCannot open existing file (z) for creation.)r‘  T©r  r  g        )r  r�  rŽ  r�  r�  c              3   ó,   >#   • U  H	  oT;   v •  M     g 7fr4   rp   r¢  s     €r:   rº   r¤  Þ  s   øé € Ð7Ò"6˜Q�DŽyÒ"6ùr¥  )ÚwÚ+r¨  r§  c                  ó   >• T" U 0 UD6  TR                   (       d  g TR                  R                  5       R                  T:  a%  TS-   n[        R
                  " TR                  X"4S9  TR                  TS9  STl         g )Nr@   ©Útimes©r’  F)rÅ   rÍ   ÚstatÚst_mtimerI  ÚutimeÚ_upload_local_to_cloud)r‹   rŒ   Ú	new_mtimer’  Úoriginal_mtimere   Úwrapped_closes      €€€€r:   Ú_patched_close_uploadÚ-CloudPath.open.<locals>._patched_close_uploadä  sq   ø€ Ù˜tÐ. vÒ.ð —{—{Øð
 —;‘;×#Ñ#Ó%×.Ñ.°Ó?Ø .°Ñ 2�IÜ—H’H˜TŸ[™[°Ð0FÒGà×+Ñ+ÐE]Ð+Ñ^Ø#�•r;   c                  ó6   >• T" U 0 UD6  TR                  5         g r4   )rÑ   )r‹   rŒ   re   Úwrapped_close_for_caches     €€r:   Ú_patched_close_empty_cacheÚ2CloudPath.open.<locals>._patched_close_empty_cache  s   ø€ Ù'¨Ð8°Ò8ð × Ñ Õ"r;   rq   )rÎ   r   rG   ÚanyrF   rE   r  rÍ   Úparentr  r±  r²  r•  rÏ   r¼   rÅ   r±   rÌ   rB   Ú
close_file)re   r  r�  rŽ  r�  r�  r‘  r’  Úexists_on_cloudÚbufferr¸  r¼  r¶  r·  r»  s   ``     `    @@@r:   r•  r–  ±  sŽ  ý€ ð Ÿ+™+›-ˆæ 4§<¡<§>¡>Ü,ØDÀTÀFÈ!ÐLóð ö ¤3Ô&E¹*Ó&E×#EÑ#EÜ,ØRÐSWÐRXÐYóð ð �3‹;˜4Ÿ;™;Ÿ=™=Ü*Ð-HÈÈÈoÐ+^Ó_Ð_ð 	×ÑÐ7QÐÑRð �{‰{×!Ñ!×#Ñ#Ø�K‰K×Ñ×$Ñ$¨T¸DÐ$ÑAØ ‰Nà!Ÿ[™[×-Ñ-Ó/×8Ñ8ˆNà—‘×!Ñ!ØØØØØð "ð 
ˆô Ô7Ñ"6Ó7×7Ñ7à"ŸL™LˆM÷$ò $ð$ 1ŒLð "ˆDŒLð ˆDŒKð �;‰;×&Ñ&¬-×*BÑ*BÓBð '-§l¡lÐ#ö#ð 6ŒLàˆr;   Útargetc                 ó8  • [        U 5      [        U5      La  [        S[        U 5       35      eU R                  5       (       a  [        SU  S35      eX:X  a  U $ UR	                  5       (       a  UR                  5         U R                  R                  X5        U$ )NzBThe target based to rename must be an instantiated class of type: r•   z6 is a directory; rename/replace the files recursively.)r®   r‚   r9  rG   rÎ   Úunlinkr±   Ú
_move_file©re   rÃ  s     r:   ÚreplaceÚCloudPath.replace  s�   € Ü�‹:œT &›\Ò)ÜØTÔUYÐZ^ÓU_ÐT`Ðaóð ð �;‰;�=‰=Ü,Ø˜�vÐSÐTóð ð ‹>àˆKà�=‰=�?‰?Ø�M‰MŒOà�‰×Ñ˜tÔ,Øˆr;   c                 ó$   • U R                  U5      $ r4   )rÈ  rÇ  s     r:   ÚrenameÚCloudPath.rename$  s   € ð �|‰|˜FÓ#Ð#r;   c                 óô   • U R                  5       (       a  [        SU  S35      e [        U R                  5       5        [	        SU  S35      e! [
         a     Of = fU R                  R                  U 5        g )Nr•   z) is a file; call unlink instead of rmdir.zDirectory not empty: 'z$'. Use rmtree to delete recursively.)r   rH   rU  rz  rK   ÚStopIterationr±   Ú_removerl   s    r:   ÚrmdirÚCloudPath.rmdir)  sz   € Ø�<‰<�>‰>Ü-Ø˜�vÐFÐGóð ð	Ü�—‘“Ô Ü(Ø(¨¨Ð.RÐSóð øô ó 	Ùð	úà�‰×Ñ˜DÕ!s   ¦(A Á
AÁAÚ
other_pathc                 ó
   • X:H  $ r4   rp   )re   rÒ  s     r:   ÚsamefileÚCloudPath.samefile7  s   € àÑ!Ð!r;   Ú
missing_okc                 ó‚   • U R                  5       (       a  [        SU  S35      eU R                  R                  X5        g )Nr•   z. is a directory; call rmdir instead of unlink.)r9  rG   r±   rÏ  )re   rÖ  s     r:   rÅ  ÚCloudPath.unlink;  s;   € à�;‰;�=‰=Ü,Ø˜�vÐKÐLóð ð 	�‰×Ñ˜DÕ-r;   Údatac                 óŽ   • [        U5      nU R                  SS9 nUR                  U5      sSSS5        $ ! , (       d  f       g= f)z¸Open the file in bytes mode, write to it, and close the file.

NOTE: vendored from pathlib since we override open
https://github.com/python/cpython/blob/3.8/Lib/pathlib.py#L1235-L1242
Úwb©r  N)Ú
memoryviewr•  Úwrite)re   rÙ  Úviewrd  s       r:   Úwrite_bytesÚCloudPath.write_bytesC  s5   € ô ˜$ÓˆØ�Y‰Y˜DˆYÑ! QØ—7‘7˜4“=÷ "×!×!ús	   ›6¶
Ac                 óê   • [        U[        5      (       d"  [        SUR                  R                  -  5      eU R                  SX#US9 nUR                  U5      sSSS5        $ ! , (       d  f       g= f)z¸Open the file in text mode, write to it, and close the file.

NOTE: vendored from pathlib since we override open
https://github.com/python/cpython/blob/3.10/Lib/pathlib.py#L1146-L1155
zdata must be str, not %sr«  ©r  rŽ  r�  r�  N)r¨   ru   r‚   rÄ   rd   r•  rÞ  )re   rÙ  rŽ  r�  r�  rd  s         r:   Ú
write_textÚCloudPath.write_textN  sY   € ô ˜$¤×$Ñ$ÜÐ6¸¿¹×9PÑ9PÑPÓQÐQà�Y‰Y˜C¨(È7ˆYÑSÐWXØ—7‘7˜4“=÷ T×S×Sús   Á	A$Á$
A2c                 óv   • U R                  SS9 nUR                  5       sS S S 5        $ ! , (       d  f       g = f)NÚrbrÜ  ©r•  Úread)re   rd  s     r:   Ú
read_bytesÚCloudPath.read_bytes`  s'   € Ø�Y‰Y˜DˆYÑ! QØ—6‘6“8÷ "×!×!ús   �*ª
8c                 óz   • U R                  SXUS9 nUR                  5       sS S S 5        $ ! , (       d  f       g = f)Nr¦  rã  rè  )re   rŽ  r�  r�  rd  s        r:   Ú	read_textÚCloudPath.read_textd  s/   € ð �Y‰Y˜C¨(È7ˆYÑSÐWXØ—6‘6“8÷ T×S×Sús   ’,¬
:c                 ó   • g©NFrp   rl   s    r:   Úis_junctionÚCloudPath.is_junctionm  ó   € Ør;   Úfuncc                 óà  ^ • T R                   R                  U5      n[        U5      (       a  U" U0 UD6n[        U[        5      (       a  [        U5      nT R                  U5      $ [        U[        R                  R                  5      (       a_  [        U5      S:”  aP  [        US   [        5      (       a8  [        U[        5      (       d  [        U5      O[        nU" U 4S jU 5       5      $ U$ )z»Some functions we can just dispatch to the pathlib version
We want to do this explicitly so we don't have to support all
of pathlib and subclasses can override individually if necessary.
r   c              3   óŽ   >#   • U  H:  n[        U5      UR                  :w  d  M  TR                  [        U5      5      v •  M<     g 7fr4   )Ú_resolverk  Ú_new_cloudpath)r¸   r¹   re   s     €r:   rº   Ú.CloudPath._dispatch_to_path.<locals>.<genexpr>Ž  s<   øé € ð "Ú:F°QÌ(ÐSTË+ÐYZ×Y_ÑY_ÑJ_Ó0�×#Ñ#¤H¨Q£K×0Ð0º,ùs
   ƒA¤!A)rÃ   Ú__getattribute__Úcallabler¨   r   r÷  rø  ÚcollectionsÚabcÚSequencerà   r2   r®   r6   )re   rô  r‹   rŒ   Úpath_versionÚsequence_classs   `     r:   Ú_dispatch_to_pathÚCloudPath._dispatch_to_patht  sØ   ø€ ð
 —z‘z×2Ñ2°4Ó8ˆô �L×!Ñ!Ù'¨Ð8°Ñ8ˆLô �l¤M×2Ñ2ä# LÓ1ˆLØ×&Ñ& |Ó4Ð4ô �|¤[§_¡_×%=Ñ%=×>Ñ>Ü�LÓ! AÓ%Ü˜<¨™?¬M×:Ñ:ô +5°\Ä<×*PÑ*P”�\Ô"ÔV[ð ñ "ô "Ù:Fó"ó ð ð  Ðr;   c                 óh   • [        U[        [        45      (       d  [        $ U R	                  SU5      $ )NÚ__truediv__)r¨   ru   r   r  r  rü   s     r:   r  ÚCloudPath.__truediv__—  s-   € Ü˜%¤#¤}Ð!5×6Ñ6Ü!Ð!à×%Ñ% m°UÓ;Ð;r;   Úpathsegmentsc                 ó(   • U R                   " S/UQ76 $ )NÚjoinpath©r  ©re   r  s     r:   r  ÚCloudPath.joinpath�  s   € Ø×%Ò% jÐ@°<Ò@Ð@r;   c                 ó   • U $ r4   rp   rl   s    r:   ÚabsoluteÚCloudPath.absolute   ó   € Øˆr;   c                 ó   • g©NTrp   rl   s    r:   Úis_absoluteÚCloudPath.is_absolute£  s   € Ør;   Ústrictc                 ó   • U $ r4   rp   )re   r  s     r:   ÚresolveÚCloudPath.resolve¦  r  r;   Úwalk_upc           
      ó‚  • [        U[        5      (       d  [        U  SU S35      eU R                  UR                  :w  a+  [        U  SU R                   SU SUR                   S35      e[	        US9n[
        R                  S:  a  UR                  S5        U R                  R                  " UR                  40 UD6$ )	Nz is a cloud path, but z is notz is a z path, but z path)r  r.   r  )
r¨   r\   r(  rá   rb  ÚsysÚversion_infoÚpoprÃ   rK  )re   rú   r  rŒ   s       r:   rK  ÚCloudPath.relative_to©  s°   € ô ˜%¤×+Ñ+Ü ˜vÐ%;¸E¸7À'ÐJÓKÐKØ�;‰;˜%Ÿ,™,Ó&ÜØ�&˜˜tŸ{™{˜m¨;°u°g¸VÀEÇLÁLÀ>ÐQVÐWóð ô ˜gÑ&ˆä×Ñ˜gÓ%Ø�J‰J�yÔ!à�z‰z×%Ò% e§k¡kÑ<°VÑ<Ð<r;   c                 óH   •  U R                  U5        g! [         a     gf = f©NTF)rK  r(  rü   s     r:   Úis_relative_toÚCloudPath.is_relative_toº  s*   € ð	Ø×Ñ˜UÔ#ØøÜó 	Ùð	ús   ‚ ”
! !c                 ó$   • U R                  S5      $ )NrY   r	  rl   s    r:   rY   ÚCloudPath.nameÁ  ó   € à×%Ñ% fÓ-Ð-r;   c                 ó   • [         R                  S:  a  [        S5      eUR                  U R                  U R
                  -   5      (       a&  U[        U R                  U R
                  -   5      S  nO;UR                  U R                  5      (       a  U[        U R                  5      S-
  S  n[        U R                  5      R                  XS9$ )Nr>   z)full_match requires Python 3.13 or higherr@   rp  )
r  r  ÚNotImplementedErrorr¦   rá   rä   rà   r   rå   Ú
full_match)re   rE  r9   s      r:   r'  ÚCloudPath.full_matchÅ  s´   € Ü×Ñ˜gÓ%Ü%Ð&QÓRÐRð ×Ñ˜dŸk™k¨D¯J©JÑ6×7Ñ7Øœc $§+¡+°·
±
Ñ":Ó;Ð=Ð>‰GØ×Ñ §¡×,Ñ,àœc $§+¡+Ó.°Ñ2Ð4Ð5ˆGô ˜T×5Ñ5Ó6×AÑAØð Bð 
ð 	
r;   Úpath_patternc                 ó6  • UR                  U R                  U R                  -   S-   5      (       a(  U[        U R                  U R                  -   S-   5      S  n[	        US9n[
        R                  S:  a  UR                  S5        U R                  " SU40 UD6$ )Nr´   rp  r.   r9   Úmatch)	r¦   rá   rä   rà   rb  r  r  r  r  )re   r)  r9   rŒ   s       r:   r+  ÚCloudPath.matchÕ  s†   € à×"Ñ" 4§;¡;°·±Ñ#;¸cÑ#A×BÑBØ'¬¨D¯K©K¸$¿*¹*Ñ,DÀsÑ,JÓ(KÐ(MÐNˆLä ^Ñ4ˆä×Ñ˜gÓ%Ø�J‰JÐ'Ô(à×%Ò% g¨|ÑF¸vÑFÐFr;   c                 ób   • [         R                  S:  a  [        S5      eU R                  S5      $ )Nr>   z%parser requires Python 3.13 or higherÚparser)r  r  r&  r  rl   s    r:   r.  ÚCloudPath.parserá  s-   € ä×Ñ˜gÓ%Ü%Ð&MÓNÐNà×%Ñ% hÓ/Ð/r;   c                 ó$   • U R                  S5      $ )Nr¿  r	  rl   s    r:   r¿  ÚCloudPath.parentè  ó   € à×%Ñ% hÓ/Ð/r;   c                 ó$   • U R                  S5      $ )Nr  r	  rl   s    r:   r  ÚCloudPath.parentsì  s   € à×%Ñ% iÓ0Ð0r;   c                 ó`   • U R                  S5      nUS   S:X  a  USS  nU R                  /UQ7$ )Nr²   r   r´   r@   )r  rá   )re   r²   s     r:   r²   ÚCloudPath.partsð  s:   € à×&Ñ& wÓ/ˆØ�‰8�s‹?Ø˜!˜"�IˆEà—‘Ð$˜eÑ$Ð$r;   c                 ó$   • U R                  S5      $ )NÚstemr	  rl   s    r:   r8  ÚCloudPath.stemø  r$  r;   c                 ó$   • U R                  S5      $ )NÚsuffixr	  rl   s    r:   r;  ÚCloudPath.suffixü  r2  r;   c                 ó$   • U R                  S5      $ )NÚsuffixesr	  rl   s    r:   r>  ÚCloudPath.suffixes   s   € à×%Ñ% jÓ1Ð1r;   r8  c                 ó‚   •  U R                  SU5      $ ! [         a     U R                  XR                  -   5      s $ f = f)NÚ	with_stem)r  ÚAttributeErrorÚ	with_namer;  )re   r8  s     r:   rA  ÚCloudPath.with_stem  s?   € ð	6Ø×)Ñ)¨+°tÓ<Ð<øÜó 	6à—>‘> $¯©Ñ"4Ó5Ò5ð	6ús   ‚ ”'>½>rY   c                 ó&   • U R                  SU5      $ )NrC  r	  )re   rY   s     r:   rC  ÚCloudPath.with_name  s   € Ø×%Ñ% k°4Ó8Ð8r;   c                 óB   • U R                  SR                  U5      5      $ )z‹Create a new CloudPath with the same client out of the given segments.
The first segment will be interpreted as the bucket/container name.
r´   )rø  r¿   r
  s     r:   Úwith_segmentsÚCloudPath.with_segments  s   € ð ×"Ñ" 3§8¡8¨LÓ#9Ó:Ð:r;   r;  c                 ó&   • U R                  SU5      $ )NÚwith_suffixr	  )re   r;  s     r:   rK  ÚCloudPath.with_suffix  s   € Ø×%Ñ% m°VÓ<Ð<r;   c                 ó  • U R                  5         U R                  R                  U5      n[        U5      (       a  U" U0 UD6n[	        U[
        [        45      (       a!  UR                  5       nU R                  U5      $ U$ r4   )	r  rÍ   rú  rû  r¨   r   r   r  rø  )re   rô  r‹   rŒ   rÿ  s        r:   Ú_dispatch_to_local_cache_pathÚ'CloudPath._dispatch_to_local_cache_path  sy   € Ø×ÑÔà—{‘{×3Ñ3°DÓ9ˆô �L×!Ñ!Ù'¨Ð8°Ñ8ˆLô �l¤Y´Ð$<×=Ñ=à'×/Ñ/Ó1ˆLØ×&Ñ& |Ó4Ð4ð  Ðr;   c                 óT   • [        SU R                   S35        U R                  SUS9$ )z‹Note: for many clients, we may want to override so we don't incur
network costs since many of these properties are available as
API calls.
z%stat not implemented as API call for z_ so file must be downloaded to calculate stats; this may take a long time depending on filesizer±  )r4  )r#   rÄ   rN  r3  s     r:   r±  ÚCloudPath.stat,  s=   € ô
 	Ø3°D·N±NÐ3Cð DOð Pô	
ð ×1Ñ1°&È/Ð1ÐZÐZr;   c                 ó   • [        U 5      $ )z,Return a CloudPathInfo object for this path.rT   rl   s    r:   ÚinfoÚCloudPath.info7  s   € ä˜TÓ"Ð"r;   Údestinationc                 óô  • [        U5      nU R                  5       (       d  [        SU  35      eU R                  5       (       a>  UR	                  5       (       a  XR
                  -  nU R                  R                  X5      $ UR                  SS9  U R                  5        HS  n[        U 5      nUR                  S5      (       d  US-   n[        U5      [        U5      S  nUR                  X-  5        MU     U$ )Nz-Cannot download because path does not exist: T)r  r´   )r   rÎ   rI   r   r9  rY   r±   Ú_download_filer  rz  ru   r¾   rà   Údownload_to)re   rU  rd  ÚrelÚrel_dests        r:   rX  ÚCloudPath.download_to<  sÔ   € Ü˜;Ó'ˆà�{‰{�}‰}Ü)Ð,YÐZ^ÐY_Ð*`ÓaÐaà�<‰<�>‰>Ø×!Ñ!×#Ñ#Ø)¯I©IÑ5�Ø—;‘;×-Ñ-¨dÓ@Ð@à×Ñ tÐÑ,Ø—\‘\–^�Ü˜$“i�Ø—|‘| C×(Ñ(Ø ™)�Cä˜q›6¤# c£( *Ð-�Ø—‘˜kÑ4Ö5ñ $ð Ðr;   c                 ó‚   • U R                  5       (       a  [        SU  S35      eU R                  R                  U 5        g)z Delete an entire directory tree.r•   z* is a file; call unlink instead of rmtree.N)r   rH   r±   rÏ  rl   s    r:   ÚrmtreeÚCloudPath.rmtreeR  s;   € à�<‰<�>‰>Ü-Ø˜�vÐGÐHóð ð 	�‰×Ñ˜DÕ!r;   Úsourcec                 óB  • [        U5      nUR                  5       (       a4  UR                  5        H  nXR                  -  R	                  X2S9  M      U $ U R                  5       (       a$  U R                  5       (       a  XR                  -  nOU nUR                  XS9  U$ )z-Upload a file or directory to the cloud path.r°  )r   r9  rz  rY   Úupload_fromrÎ   Ú_upload_file_to_cloud)re   r_  r’  r¹   Údsts        r:   ra  ÚCloudPath.upload_fromZ  s…   € ô �f“ˆà�=‰=�?‰?Ø—^‘^Ö%�ØŸ™‘×+Ñ+¨AÐ+Óañ &ð ˆKð �{‰{�}‰} §¡§¡ØŸ[™[Ñ(‘à�à×%Ñ% fÐ%Ñ`àˆJr;   Úpreserve_metadataÚ
remove_srcc           	      ó¨  • U R                  5       (       d  [        SU  S35      e[        R                  " U5      nU R	                  5       (       a-  U R                  UUS9n[        [        [        [        4   U5      $ [        U[        5      (       d  U R                  U5      $ U R                  UR                  L aø  UR                  5       (       a#  UR	                  5       (       a  X`R                  -  nUc1  [        R                   R#                  SS5      R%                  5       S;   nU(       d]  UR                  5       (       aH  UR'                  5       R(                  U R'                  5       R(                  :¼  a  [+        SU SU  S	35      e[        [        U R                  R-                  XUS
95      $ UR                  5       (       a  UR/                  5       (       a5  [        [        [        [        4   UR1                  U R2                  US95      $ [        [        [        [        4   X`R                  -  R1                  U R2                  US95      $ )Nr•   z must exist to copy.r°  Ú%CLOUDPATHLIB_FORCE_OVERWRITE_TO_CLOUDÚFalse©Ú1ÚtruezFile (z) is newer than (z5). To overwrite pass `force_overwrite_to_cloud=True`.)rf  )rÎ   r(  rC   Ú
to_anypathr9  Úcopytreer!   r    r   r-   r¨   r\   rX  r±   rY   rI  ÚenvironÚgetrî   r±  r²  rQ   rÆ  r   ra  r?  )re   rÃ  r4  re  r’  rf  rU  Úresults           r:   Ú_copyÚCloudPath._copyr  s  € ð �{‰{�}‰}Ü˜u T FÐ*>Ð?Ó@Ð@ä×(Ò(¨Ó0ˆà�;‰;�=‰=Ø—]‘]ØØ)Að #ð ˆFô œœd¤D˜jÑ)¨6Ó2Ð2ä˜+¤y×1Ñ1Ø×#Ñ# KÓ0Ð0ð �;‰;˜+×,Ñ,Ò,Ø×!Ñ!×#Ñ#¨×(:Ñ(:×(<Ñ(<Ø)¯I©IÑ5�à'Ñ/Ü+-¯:©:¯>©>Ø;¸Wó,ç‘%“'˜]ñ,+Ð(ö
 -Ø×&Ñ&×(Ñ(Ø×$Ñ$Ó&×/Ñ/°4·9±9³;×3GÑ3GÓGä.Ø˜[˜MÐ):¸4¸&ð A<ð =óð ô œ˜dŸk™k×4Ñ4°TÐS]Ð4Ð^Ó_Ð_ð ×%Ñ%×'Ñ'¨;×+>Ñ+>×+@Ñ+@ÜÜœ$¤˜*Ñ%Ø×+Ñ+ØŸ™Ð>Vð ,ð óð ô Üœ$¤˜*Ñ%Ø §9¡9Ñ,×9Ñ9ØŸ™Ð>Vð :ð óð r;   c                 ó   • g r4   rp   ©re   rÃ  r4  re  r’  s        r:   rÖ   ÚCloudPath.copy°  ó   € ð r;   c                 ó   • g r4   rp   ru  s        r:   rÖ   rv  ¹  rw  r;   c                 ó   • g r4   rp   ru  s        r:   rÖ   rv  Â  ó   € ð $'r;   c                 ó(   • U R                  UUUUSS9$ )z6Copy self to target folder or file, if self is a file.F©r4  re  r’  rf  ©rr  ru  s        r:   rÖ   rv  Ë  s)   € ð �z‰zØØ+Ø/Ø%=Øð ð 
ð 	
r;   Ú
target_dirc                 ó   • g r4   rp   ©re   r~  r4  re  r’  s        r:   Ú	copy_intoÚCloudPath.copy_intoÛ  rw  r;   c                 ó   • g r4   rp   r€  s        r:   r�  r‚  ä  rw  r;   c                 ó   • g r4   rp   r€  s        r:   r�  r‚  í  rz  r;   c                 ó¨   • [         R                  " U5      U R                  -  nU R                  UUUUSS9n[	        [
        [        [        4   U5      $ )z9Copy self into target directory, preserving the filename.Fr|  ©rC   rm  rY   rr  r!   r    r   r-   ©re   r~  r4  re  r’  Útarget_pathrq  s          r:   r�  r‚  ö  sW   € ô ×(Ò(¨Ó4°t·y±yÑ@ˆà—‘ØØ+Ø/Ø%=Øð ð 
ˆô ”Eœ$¤˜*Ñ% vÓ.Ð.r;   Úignorec                 ó   • g r4   rp   ©re   rU  r’  r‰  s       r:   rn  ÚCloudPath.copytree	  ó   € ð r;   c                 ó   • g r4   rp   r‹  s       r:   rn  rŒ    r�  r;   c                 ó   • g r4   rp   r‹  s       r:   rn  rŒ    s   € ð $'r;   c                 ó  • U R                  5       (       d  [        SU  S35      e[        R                  " U5      nUR	                  5       (       a$  UR                  5       (       a  [        SU S35      e[        U R                  5       5      nUb.  U" U R                  U Vs/ s H  oUR                  PM     sn5      nO
[        5       nUR                  SSS9  U H¡  nUR                  U;   a  M  UR                  5       (       a  UR                  XR                  -  US9  MH  UR                  5       (       d  M_  UR                  XR                  UR                  R                  S5      (       a  S	OS-   -  UUS
9  M£     U$ s  snf )z1Copy self to a directory, if self is a directory.zOrigin path z@ must be a directory. To copy a single file use the method copy.zDestination path z! of copytree must be a directory.Tr©  r°  r´   rH  )r’  r‰  )r9  rH   rC   rm  rÎ   r   rE   Úlistrz  rå   rY   Úsetr  rÖ   rn  r¾   )re   rU  r’  r‰  Úcontentsr¨  Úignored_namesÚsubpaths           r:   rn  rŒ  !  se  € à�{‰{�}‰}Ü-Ø˜t˜fÐ$dÐeóð ô ×(Ò(¨Ó5ˆà×Ñ×Ñ K×$7Ñ$7×$9Ñ$9Ü*Ø# K =Ð0QÐRóð ô ˜Ÿ™›Ó'ˆàÑÙ" 4×#;Ñ#;ÉhÓ=WÊhÈ¿f¼fÉhÑ=WÓX‰Mä›EˆMà×Ñ $°ÐÑ6ãˆGØ�|‰|˜}Ó,ÙØ�‰× Ñ Ø—‘Ø§,¡,Ñ.ÐIað ó ð —‘×!Ó!Ø× Ñ Ø§<¡<¸¿¹×9NÑ9NÈs×9SÑ9S±2ÐY\Ñ#]Ñ^Ø-EØ!ð !ó ñ  ð Ðùò) >Xs   Â!F
c                 ó   • g r4   rp   ru  s        r:   ÚmoveÚCloudPath.moveH  rw  r;   c                 ó   • g r4   rp   ru  s        r:   r—  r˜  Q  rw  r;   c                 ó   • g r4   rp   ru  s        r:   r—  r˜  Z  rz  r;   c                 ó(   • U R                  UUUUSS9$ )z2Move self to target location, removing the source.Tr|  r}  ru  s        r:   r—  r˜  c  s)   € ð �z‰zØØ+Ø/Ø%=Øð ð 
ð 	
r;   c                 ó   • g r4   rp   r€  s        r:   Ú	move_intoÚCloudPath.move_intos  rw  r;   c                 ó   • g r4   rp   r€  s        r:   r�  rž  |  rw  r;   c                 ó   • g r4   rp   r€  s        r:   r�  rž  …  rz  r;   c                 ó¨   • [         R                  " U5      U R                  -  nU R                  UUUUSS9n[	        [
        [        [        4   U5      $ )zQMove self into target directory, preserving the filename and removing the source.Tr|  r†  r‡  s          r:   r�  rž  Ž  sW   € ô ×(Ò(¨Ó4°t·y±yÑ@ˆà—‘ØØ+Ø/Ø%=Øð ð 
ˆô ”Eœ$¤˜*Ñ% vÓ.Ð.r;   c                 óø   • U R                   R                  5       (       a[  U R                   R                  5       (       a  U R                   R                  5         g[        R
                  " U R                   5        gg)zRemoves cache if it existsN)rÍ   rÎ   r   rÅ  Úshutilr]  rl   s    r:   rÑ   ÚCloudPath.clear_cache¡  sM   € à�;‰;×Ñ×ÑØ�{‰{×"Ñ"×$Ñ$Ø—‘×"Ñ"Õ$ä—’˜dŸk™kÕ*ð	  r;   c                 óH   • U R                   R                  U R                  -  $ )z!Cached local version of the file.)r±   Ú_local_cache_dirrÂ   rl   s    r:   rÍ   ÚCloudPath._localª  s   € ð �{‰{×+Ñ+¨d¯o©oÑ=Ð=r;   c                 óè   • [        U5      nUR                  S5      (       a  USS nUR                  U R                  5      (       d  U R                   U 3nU R                  R                  " U/UQ76 $ )zÄUse the scheme, client, cache dir of this cloudpath to instantiate
a new cloudpath of the same type with the path passed.

Used to make results of iterdir and joins have a unified client + cache.
r´   r@   N)ru   r¦   rá   r±   r\   )re   rç   r²   s      r:   rø  ÚCloudPath._new_cloudpath¯  sj   € ô �4‹yˆð �?‰?˜3×ÑØ˜˜�8ˆDð �‰˜tŸ{™{×+Ñ+Ø—k‘k�] 4 &Ð)ˆDà�{‰{×$Ò$ TÐ2¨EÒ2Ð2r;   c                 ó<  •  U R                  5       nUc1  [        R                  R	                  SS5      R                  5       S;   nU(       dQ  U R                  R                  5       (       a2  U R                  R                  5       R                  UR                  :  at  U R                  R                  R                  SSS9  U R                  U R                  5        [        R                  " U R                  UR                  UR                  4S9  U R                  (       a  [        SU R                   SU  S	35      eU R                  R                  5       R                  UR                  :”  a  [        SU R                   SU  S
35      eg ! [         a     g f = f)NÚ'CLOUDPATHLIB_FORCE_OVERWRITE_FROM_CLOUDri  rj  Tr©  r®  úLocal file (ú) for cloud path (a  ) has been changed by your code, but is being requested for download from cloud. Either (1) push your changes to the cloud, (2) remove the local file, or (3) pass `force_overwrite_from_cloud=True` to overwrite; or set env var CLOUDPATHLIB_FORCE_OVERWRITE_FROM_CLOUD=1.zÿ) is newer on disk, but is being requested for download from cloud. Either (1) push your changes to the cloud, (2) remove the local file, or (3) pass `force_overwrite_from_cloud=True` to overwrite; or set env var CLOUDPATHLIB_FORCE_OVERWRITE_FROM_CLOUD=1.)r±  rO   rI  ro  rp  rî   rÍ   rÎ   r²  r¿  r  rX  r³  rÅ   rP   rR   )re   r‘  Ústatss      r:   r  ÚCloudPath._refresh_cacheÁ  se  € ð	Ø—I‘I“KˆEð &Ñ-Ü)+¯©¯©Ø9¸7ó*ç‰e‹g˜ñ*'Ð&ö 'Ø—;‘;×%Ñ%×'Ñ'Ø—‘× Ñ Ó"×+Ñ+¨e¯n©nÓ<ð �K‰K×Ñ×$Ñ$¨T¸DÐ$ÑAØ×Ñ˜TŸ[™[Ô)ô �HŠH�T—[‘[¨¯©¸¿¹Ð(HÒIà�;�;Ü)Ø˜tŸ{™{˜mÐ+=¸d¸Vð DWð Xóð ð �;‰;×ÑÓ×&Ñ&¨¯©Ó7Ü*Ø˜tŸ{™{˜mÐ+=¸d¸Vð DWð Xóð ð 8øôC ó 	ñ ð	ús   ‚F Æ
FÆFc                 ó4  • U R                   R                  5       (       a  [        S5      eU R                  U R                   US9nU R	                  5       n[
        R                  " U R                   UR                  UR                  4S9  SU l        SU l	        U$ )z.Uploads cache file at self._local to the cloudz2Only individual files can be uploaded to the cloudr°  r®  FN)
rÍ   r9  r(  rb  r±  rI  r³  r²  rÅ   r¼   )re   r’  Úuploadedr®  s       r:   r´  Ú CloudPath._upload_local_to_cloudí  sƒ   € ð �;‰;×Ñ×ÑÜÐQÓRÐRà×-Ñ-Ø�K‰KÐ2Jð .ð 
ˆð
 —	‘	“ˆÜ
�Š�—‘ U§^¡^°U·^±^Ð$DÒEð ˆŒØˆŒàˆr;   Ú
local_pathc                 óÌ  • Uc1  [         R                  R                  SS5      R                  5       S;   nU(       a  U R                  R                  UU 5        U $  U R                  5       nU(       a(  UR                  5       R                  UR                  :”  a  U R                  R                  UU 5        U $ [        SU R                   SU  S35      e! [         a    Sn Nwf = f)zVUploads file at `local_path` to the cloud if there is not a newer file
already there.
Nrh  ri  rj  r¬  r­  zð) is newer in the cloud disk, but is being requested to be uploaded to the cloud. Either (1) redownload changes from the cloud or (2) pass `force_overwrite_to_cloud=True` to overwrite; or set env var CLOUDPATHLIB_FORCE_OVERWRITE_TO_CLOUD=1.)rI  ro  rp  rî   r±   Ú_upload_filer±  rO   r²  rQ   rÍ   )re   r³  r’  r®  s       r:   rb  ÚCloudPath._upload_file_to_cloud  sä   € ð $Ñ+Ü')§z¡z§~¡~Ø7¸ó(ç‰e‹g˜ñ('Ð$ö $à�K‰K×$Ñ$ØØôð ˆKð	Ø—I‘I“KˆEö
 ˜Ÿ™Ó*×3Ñ3°e·n±nÓDØ�K‰K×$Ñ$ØØôð
 ˆKô 'Ø˜4Ÿ;™;˜-Ð'9¸$¸ð @Qð Ró
ð 	
øô ó 	ØŠEð	ús   ÁC ÃC#Ã"C#Ú_source_typec           	      ó¼   •  SSK Jn  UR                  U R                  UR	                  5       UR                  S UR                  5       S9S9$ ! [         a     gf = f)zNPydantic special method. See
https://docs.pydantic.dev/2.0/usage/types/custom/r   )Úcore_schemac                 ó   • [        U 5      $ r4   r.  )r¨  s    r:   rR  Ú8CloudPath.__get_pydantic_core_schema__.<locals>.<lambda><  s   € œc !œfr;   )Úreturn_schema)ÚserializationN)Úpydantic_corer¹  Ú no_info_after_validator_functionÚvalidateÚ
any_schemaÚ$plain_serializer_function_ser_schemaÚ
str_schemaÚImportError)rg   r·  Ú_handlerr¹  s       r:   Ú__get_pydantic_core_schema__Ú&CloudPath.__get_pydantic_core_schema__1  sm   € ð	Ý1à×?Ñ?Ø—‘Ø×&Ñ&Ó(Ø)×NÑNÙ$Ø"-×"8Ñ"8Ó":ð Oð ð @ð ð øô ó 	Ùð	ús   ‚AA Á
AÁAÚvc                 ó   • U " U5      $ )zSUsed as a Pydantic validator. See
https://docs.pydantic.dev/2.0/usage/types/custom/rp   )rg   rÈ  s     r:   rÀ  ÚCloudPath.validateC  s   € ñ �1‹vˆr;   c              #   ó(   #   • U R                   v •  g7f)z_Pydantic special method. See
https://pydantic-docs.helpmanual.io/usage/types/#custom-data-typesN)Ú	_validate)rg   s    r:   Ú__get_validators__ÚCloudPath.__get_validators__I  s   é € ð �m‰mÓùs   ‚Úvaluec                 ó   • U " U5      $ )zdUsed as a Pydantic validator. See
https://pydantic-docs.helpmanual.io/usage/types/#custom-data-typesrp   )rg   rÏ  s     r:   rÌ  ÚCloudPath._validateO  s   € ñ �5‹zÐr;   )r½   rÅ   r¼   rÃ   rÀ   rÁ   rq   ).©F)FFN)TN)Fi  ©Tr  )TNF)r¦  r˜  NNNNN)NNNNN)r˜  NNNNN)NNNr4   )r^   rU   )TFNF)TFN)NN)€rd   rr   rs   rt   r¤   rW   rv   ru   r    r-   r   r›   rx   r±   rÒ   r   r   rÙ   rÝ   rÂ   rå   r   Úclassmethodrw   r+   r˜   rñ   rô   Úintrø   rý   r  r  r  r  r  rý  Úabstractmethodrä   r  r  r%  r)  rá   r/  rÎ   r9  r   r?  rC  rI  rJ  rM  re  r   rl  rt  rw  rz  Ústaticmethodr�  r   r   r   r‹  r•  r   rÈ  rË  rÐ  rÔ  rÅ  Úbytesrà  rä  rê  rí  rñ  r  r   r  r  r  r  r  rK  r   rY   r'  r+  r.  r¿  r  r²   r8  r;  r>  rA  rC  rH  rK  rN  Ústat_resultr±  rS  r   rX  r]  ra  rr  rÖ   r�  r   r   rn  r—  r�  rÑ   rÍ   rø  r  r´  rb  rÆ  rÀ  rÍ  rÌ  ry   rp   r;   r:   r\   r\   à   sä  ‡ ñð %Ó$ØÓð &*ò	)à˜#˜t [Ð0Ñ1ð)ð ð)ð ˜Ñ"ð	)ð
 
õ)ðV ñó ðôð˜d 3¨ 8™nô ð$ $ s¨C x¡.ð $°Tô $ð ð-˜Có -ó ð-ð ð? Só ?ó ð?ð Øà7:ñØðØ04ðà	�4‰ôó ó ðð ØÙS cÐS¸4ÐSÈ$ÔSó ó àSààCHñ
Ø˜˜kÐ)Ñ*ð
Ø<@ð
à	ˆt�Y˜t‘_Ð$Ñ	%ô
ó ð
ð6˜#ô 6ð˜ô ð6˜#ô 6ðI˜Cð I Dô Ið ˜Cô  ð
(˜Cð ( Dô (ð
)˜Cð ) Dô )ð
(˜Cð ( Dô (ð
)˜Cð ) Dô )ð> Ø×Ñð�só ó ó ðð 	×ÑàSWñØðØ/3ðØCKÈCÁ=ðà	ôó ðð 	×Ññ˜dð °¸#±ð È$ô ó ðñ˜dð ¸Cð Ècõ ð
 #ð 
¨$ô 
ð
 ð!˜ó !ó ð!ð˜ô ñ)¨dõ )ñ:¨dõ :ñ;¨tõ ;ð ð!˜ó !ó ð!ð ð˜3ð  4ó ó ðð E¨#¨r¯{©{Ð*:Ñ$;ð Àô ò0ð:8¨ð 8°)¸DÀ$ÈÐ<LÑ2Mô 8ð  *.Ø!%ñ	
à�s˜BŸK™KÐ'Ñ(ð
ð ! ™ð
ð ð	
ð
 
�4˜˜tÐ#Ñ	$õ
ð. *.Ø!%ñ	.à�s˜BŸK™KÐ'Ñ(ð.ð ! ™ð.ð ð	.ð
 
�4˜˜tÐ#Ñ	$õ.ð˜ 4¨¨tÐ#3Ñ4ô ð
 ó$ó ð$ð( Ø'+Ø %ñ	àðð ˜8Ñ$ðð ð	ð
 
�5˜˜t C™y¨$¨s©)Ð3Ñ4°d¸DÐ@Ñ	Aõð  ð  #ØØ"&Ø $Ø!%Ø59Ø37ñ	àð	ð ð	ð ˜3‘-ð		ð
 ˜‘ð	ð ˜#‘ð	ð %-¨T¡Nð	ð #+¨4¡.ð	ð 
ô	ó ð	ð ð
 ØØØ59Ø37ñ	àð	ð ˜1‘:ð	ð ð		ð
 ð	ð ð	ð %-¨T¡Nð	ð #+¨4¡.ð	ð 
ô	ó ð	ð ð %'ØØØØ59Ø37ñ	à&ð	ð ˜5‘>ð	ð ð		ð
 ð	ð ð	ð %-¨T¡Nð	ð #+¨4¡.ð	ð 
ô	ó ð	ð ð %'ØØØØ59Ø37ñ	à%ð	ð ˜5‘>ð	ð ð		ð
 ð	ð ð	ð %-¨T¡Nð	ð #+¨4¡.ð	ð 
ô	ó ð	ð ð %'ØØØØ59Ø37ñ	à%ð	ð ˜5‘>ð	ð ð		ð
 ð	ð ð	ð %-¨T¡Nð	ð #+¨4¡.ð	ð 
ô	ó ð	ð ð ØØØØ59Ø37ñ	àð	ð ð	ð ð		ð
 ð	ð ð	ð %-¨T¡Nð	ð #+¨4¡.ð	ð 
ô	ó ð	ð ð Ø"&Ø $Ø!%Ø59Ø37ñ	àð	ð ð	ð ˜3‘-ð		ð
 ˜‘ð	ð ˜#‘ð	ð %-¨T¡Nð	ð #+¨4¡.ð	ð 
ô	ó ð	ð ØØ"&Ø $Ø!%Ø59Ø37ñ\àð\ð ð\ð ˜3‘-ð	\ð
 ˜‘ð\ð ˜#‘ð\ð %-¨T¡Nð\ð #+¨4¡.ð\ð 
õ\ð|˜dð  tô ð*$˜Tð $ dô $ô
"ð" 5¨¨b¯k©kÐ)9Ñ#:ð "¸tô "ñ. ð .°õ .ð	! ð 	!¨#ô 	!ð #'Ø $Ø!%ñ!àð!ð ˜3‘-ð!ð ˜‘ð	!ð
 ˜#‘ð!ð 
õ!ð$˜Eô ð #'Ø $Ø!%ñ	à˜3‘-ðð ˜‘ðð ˜#‘ð	ð
 
õòð!  cð ! ¸sô ! ðF<  s¨MÐ'9Ñ!:ð <¸tô <ðA e¨C°·±Ð,<Ñ&=ð AÀ$ô Að˜$ô ð˜Tô ñ˜dð ¨tõ ñ= ð =°ð =Àõ =ð" Dð ¨Tô ð ð.�có .ó ð.ñ
 #ð 
°xÀ±~ð 
ÐQUõ 
ñ 
G #ð 
G°xÀ±~ð 
GÐQUõ 
Gð ð0˜ó 0ó ð0ð ð0˜ó 0ó ð0ð ð1˜˜t S˜yÑ)ó 1ó ð1ð ð%�u˜S #˜X‘ó %ó ð%ð ð.�có .ó ð.ð ð0˜ó 0ó ð0ð ð2˜$˜s™)ó 2ó ð2ð6˜cð 6 dô 6ð9˜cð 9 dô 9ð;¨dô ;ð= #ð =¨$ô =ð
 °#ð  È3ô  ñ&	[ Dð 	[°B·N±Nõ 	[ô#ð
 u¨S°"·+±+Ð-=Ñ'>ð À4ô ô,"ð 48ñà�c˜2Ÿ;™;Ð&Ñ'ðð #+¨4¡.ðð 
õ	ð6 !%Ø"'Ø37Ø ñ<à�c˜2Ÿ;™;¨Ð3Ñ4ð<ð ð<ð  ð	<ð
 #+¨4¡.ð<ð ð<ð 
ˆt�TˆzÑ	õ<ð| ð ØØ37ñàðð
 #+¨4¡.ðð 
ôó ðð ð ØØ37ñàðð
 #+¨4¡.ðð 
ôó ðð ð ØØ37ñ'àð'ð
 #+¨4¡.ð'ð 
ˆt�[Ð Ñ	!ô'ó ð'ð !%Ø"'Ø37ñ
à�c˜2Ÿ;™;¨Ð,Ñ-ð
ð ð
ð  ð	
ð
 #+¨4¡.ð
ð 
ˆt�TˆzÑ	õ
ð  ð !%Ø"'Ø37ñàðð ðð  ð	ð
 #+¨4¡.ðð 
ôó ðð ð !%Ø"'Ø37ñàðð ðð  ð	ð
 #+¨4¡.ðð 
ôó ðð ð !%Ø"'Ø37ñ'àð'ð ð'ð  ð	'ð
 #+¨4¡.ð'ð 
ˆt�[Ð Ñ	!ô'ó ð'ð !%Ø"'Ø37ñ/à˜#˜rŸ{™{¨DÐ0Ñ1ð/ð ð/ð  ð	/ð
 #+¨4¡.ð/ð 
ˆt�TˆzÑ	õ/ð& ð 48ØKOñ	àðð #+¨4¡.ðð ˜ 3¨°©Ð"6¸	À#¹Ð"FÑGÑHð	ð
 
ôó ðð ð 48ØKOñ	àðð #+¨4¡.ðð ˜ 3¨°©Ð"6¸	À#¹Ð"FÑGÑHð	ð
 
ôó ðð ð 48ØKOñ	'à˜3 §¡¨TÐ1Ñ2ð'ð #+¨4¡.ð'ð ˜ 3¨°©Ð"6¸	À#¹Ð"FÑGÑHð	'ð
 
ˆt�[Ð Ñ	!ô'ó ð'ô%ðN ð !%Ø"'Ø37ñàðð ðð  ð	ð
 #+¨4¡.ðð 
ôó ðð ð !%Ø"'Ø37ñàðð ðð  ð	ð
 #+¨4¡.ðð 
ôó ðð ð !%Ø"'Ø37ñ'àð'ð ð'ð  ð	'ð
 #+¨4¡.ð'ð 
ˆt�[Ð Ñ	!ô'ó ð'ð !%Ø"'Ø37ñ
à�c˜2Ÿ;™;¨Ð,Ñ-ð
ð ð
ð  ð	
ð
 #+¨4¡.ð
ð 
ˆt�TˆzÑ	õ
ð  ð !%Ø"'Ø37ñàðð ðð  ð	ð
 #+¨4¡.ðð 
ôó ðð ð !%Ø"'Ø37ñàðð ðð  ð	ð
 #+¨4¡.ðð 
ôó ðð ð !%Ø"'Ø37ñ'àð'ð ð'ð  ð	'ð
 #+¨4¡.ð'ð 
ˆt�[Ð Ñ	!ô'ó ð'ð !%Ø"'Ø37ñ/à˜#˜rŸ{™{¨DÐ0Ñ1ð/ð ð/ð  ð	/ð
 #+¨4¡.ð/ð 
ˆt�TˆzÑ	õ/ò&+ð ð>˜ó >ó ð>ð3 5¨¨b¯k©kÐ)9Ñ#:ð 3ÀCð 3ÈDô 3ñ$*¸À$¹ð *ÐSWõ *ð\ 48ñà"*¨4¡.ðð 
õð6 48ñ)
àð)
ð #+¨4¡.ð)
ð 
õ	)
ðX ð¸ó ó ðð" ð˜ð  ó ó ðð
 ð 9¨X°s°e¸T°kÑ-BÀDÈ$Ð-NÑ#Oó ó ðð
 ð˜cð  dó ó ór;   )Ú	metaclassrç   c                 óÈ   • SnSn[        U 5      R                  U5       H6  nU(       a  US:X  a  M  US:X  a  UR                  U5      u  n  nM/  X!-   U-   nM8     U=(       d    U$ )Nr´   rH  r–   rG  )ru   ra  Ú
rpartition)rç   ÚsepÚnewpathrY   rb   s        r:   r÷  r÷  ]  si   € Ø
€Cð €GÜ�D“	—‘ Ö$ˆÞ�t˜s“{áØ�4‹<à#×.Ñ.¨sÓ3‰MˆG�Q˜ÙØ‘- $Ñ&Šñ %ð �>�cÐr;   c                   ó&   • \ rS rSrS\SS4S jrSrg)Ú_CloudPathSelectableAccessorix  Úscandir_funcr^   Nc                 ó   • Xl         g r4   ©Úscandir)re   rá  s     r:   r›   Ú%_CloudPathSelectableAccessor.__init__y  s   € Ø#�r;   rã  )rd   rr   rs   rt   r   r›   ry   rp   r;   r:   rà  rà  x  s   † ð$ Xð $°$÷ $r;   rà  c                   óÞ   • \ rS rSr SS\S\\   S\S\SS4
S jjrS\4S	 jr	SS
\S\4S jjr
S\4S jrS\4S jr\S\4S j5       rS r\\SS S\\S   SS4   4S j5       5       r\rS rSrg)rh  i}  rY   r  ÚchildrenrÎ   r^   Nc                 óh   • Xl         X0l        X l        X@l        [	        U R
                  5      U l        g r4   )Ú_nameÚ_all_childrenÚ_parentsr2  rà  rä  Ú	_accessor)re   rY   r  rç  rÎ   s        r:   r›   Ú_CloudPathSelectable.__init__~  s)   € ð Œ
Ø%ÔØŒØŒä5°d·l±lÓCˆ�r;   c                 óT   • SR                  U R                  U R                  /-   5      $ )Nr´   )r¿   rë  rY   rl   s    r:   rñ   Ú_CloudPathSelectable.__repr__Œ  s    € Ø�x‰x˜Ÿ™¨¯©¨Ñ3Ó4Ð4r;   r4  c                 ó   • U R                   S L$ r4   )rê  r3  s     r:   r9  Ú_CloudPathSelectable.is_dir�  s   € Ø×!Ñ!¨Ð-Ð-r;   c                 ó   • U R                   $ r4   )r2  rl   s    r:   rÎ   Ú_CloudPathSelectable.exists’  s   € Ø�|‰|Ðr;   c                 ó   • grð  rp   rl   s    r:   Ú
is_symlinkÚ_CloudPathSelectable.is_symlink•  ró  r;   c                 ó   • U R                   $ r4   )ré  rl   s    r:   rY   Ú_CloudPathSelectable.name˜  s   € à�z‰zÐr;   c                 ó–   • [        UU R                  U R                  /-   U R                  R	                  US 5      XR                  ;   S9$ )N)rÎ   )rh  rë  rY   rê  rp  )re   Úparts     r:   Ú_make_child_relpathÚ(_CloudPathSelectable._make_child_relpathœ  sF   € ä#ØØ�M‰M˜TŸY™Y˜KÑ'Ø×Ñ×"Ñ" 4¨Ó.Ø×-Ñ-Ñ-ñ	
ð 	
r;   rk  )rh  NNc              #   óZ   ^ #   • U 4S jT R                   R                  5        5       v •  g 7f)Nc              3   ór   >#   • U  H,  u  p[        UTR                  TR                  /-   U5      v •  M.     g 7fr4   )rh  rë  ré  )r¸   ÚchildÚgrand_childrenrk  s      €r:   rº   Ú/_CloudPathSelectable.scandir.<locals>.<genexpr>ª  s6   øé € ð 
â)CÑ%�ô ! ¨¯©¸¿¹¸Ñ(DÀn×UÐUÚ)Cùs   ƒ47)rê  r  )rk  s   `r:   rä  Ú_CloudPathSelectable.scandir¥  s'   øé € ô

à)-×);Ñ);×)AÑ)AÔ)Có
ó 	
ùs   ƒ(+c              #   ó´  #   • [        [        5      nU R                  U 5       nU H$  nXR                  5          R	                  U5        M&     XS    Vs/ s H  oDR
                  PM     snUS    Vs/ s H  oDR
                  PM     sn4v •  US    H  nUR                  5        S h  v•N   M     S S S 5        g s  snf s  snf  N! , (       d  f       g = f7fr  )r   r‘  rä  r9  r€  rY   r‹  )re   Ú
dirs_filesr  rÿ  rd  Ú	child_dirs         r:   r‹  Ú_CloudPathSelectable.walk±  s¸   é € ä ¤Ó&ˆ
Ø�\‰\˜$Ô 5Û�ØŸ<™<›>Ñ*×1Ñ1°%Ö8ñ ð °DÒ)9Ó:Ò)9 AŸœÑ)9Ñ:ÈZÐX]ÒM^Ó<_ÒM^È¿V¼VÑM^Ñ<_Ð_Ò_à'¨Ô-�	Ø$Ÿ>™>Ó+×+Ò+ñ .÷  Ðùò
 ;ùÒ<_ñ ,÷  ÕüsF   ‚!C£2CÁB;Á*	CÁ3C 
Â!CÂ)CÂ*CÂ2	CÂ;CÃ
CÃC)rì  rê  r2  ré  rë  rÓ  rÒ  )rd   rr   rs   rt   ru   r   r   rw   r›   rñ   r9  rÎ   rõ  rx   rY   rû  r×  r   r   rä  Ú_scandirr‹  ry   rp   r;   r:   rh  rh  }  sç   † ð ñDàðDð �c‘ðDð ð	Dð
 ðDð 
õDð5˜#ô 5ñ. dð .°tõ .ð˜ô ð˜Dô ð ð�có ó ðò
ð Øð
Ø$ð
à	�9Ð?Ñ@À$ÈÐLÑ	Mó
ó ó ð
ð €Hõ,r;   rh  rÓ  )crý  rü  r   Úcollections.abcÚ
contextlibr   Úior   r   r   r	   r
   rI  Úpathlibr   r   r   r   r£  r  Útypesr   Útypingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   Úurllib.parser"   Úwarningsr#   Ú	_typeshedr$   r%   r&   r'   r(   r  r+   Útyping_extensionsr-   r0   r1   r5   r2   r=   Úpathlib._localÚlegacy.globÚcloudpathlib.enumsrB   rH  rC   Ú
exceptionsrD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   r±   rS   Úcloudpath_inforU   rW   rz   ru   rv   r{   r|   r†   ÚABCMetarˆ   r\   r÷  rà  rh  rp   r;   r:   Ú<module>r     sÚ  ðÜ 
Ý #Û Ý %ß TÕ TÛ 	÷ó ó Û 
Ý ÷÷ ÷ ÷ ÷ õ( "Ý æ÷õ ð ×Ñ�wÓÞ å+à×Ñ�wÓÞå&ð ×Ñ�gÓÝ&Ý@Ý$õFð 	×Ñ�b�qÐ˜WÓ$Ý$Ý3Þ&Ø×Ñ�b�qÐ˜WÓ$Ý+Û&æ+Ø×Ñ˜Ó Ý$Û&Ý+õ -å ÷÷ ÷ ÷ ñ ö$ Ýå )÷ ñ  ñ< ;FÐFYÓ:ZÐ ˜˜cÐ#6Ð6Ñ7Ó Zñ ˆCƒL€Ù�\¨Ñ5€
ð˜Sð  X¨t°JÑ/?Ð.@À$ÀzÑBRÐ.RÑ%Sô ô>@�C—K‘Kô >@ôDs˜-ò sðz+�=ð  Sô ÷6$ñ $÷
?,ò ?,r;   