
    OOIdJ*                     :    d dl mZ d dlmZ  G d de          ZdS )   )
filesystem)AsyncFileSystemc                       e Zd Z	 	 	 	 	 d@ fd	Zd Zd Ze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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(dAd(Z)dAd)Z*d* Z+d+ Z,d, Z-d- Z.d. Z/d/ Z0d0 Z1d1 Z2d2 Z3d3 Z4d4 Z5d5 Z6d6 Z7d7 Z8d8 Z9d9 Z:d: Z;d; Z<d< Z=d= Z>d> Z?d? Z@ xZAS )BDirFileSystemNc                 b    t                      j        di | |t          dd|i|pi }|du|duz  du rt          d          |p|}| j        r|j        st          d          |j        r| j        |j        k    rt          d          |                    |          | _        || _        dS )aS  
        Parameters
        ----------
        path: str
            Path to the directory.
        fs: AbstractFileSystem
            An instantiated filesystem to wrap.
        target_protocol, target_options:
            if fs is none, construct it from these
        fo: str
            Alternate for path; do not provide both
        NprotocolFzProvide path or fo, not bothz(can't use asynchronous with non-async fsz7both dirfs and fs should be in the same sync/async mode )	super__init__r   
ValueErrorasynchronous
async_impl_strip_protocolpathfs)selfr   r   fotarget_protocoltarget_optionsstorage_options	__class__s          <lib/python3.11/site-packages/fsspec/implementations/dirfs.pyr   zDirFileSystem.__init__   s    * 	++?+++:OO_O9M2OOB40E99;<<<zr 	IR] 	IGHHH= 	XT."/AAVWWW&&t,,	    c                      t          |t                    r8 j        s|S |s j        S  j        j                             j        |f          S  fd|D             S )Nc                 :    g | ]}                     |          S r	   )_join.0_pathr   s     r   
<listcomp>z'DirFileSystem._join.<locals>.<listcomp>2   s%    444e

5!!444r   )
isinstancestrr   r   sepjoinr   r   s   ` r   r   zDirFileSystem._join+   sm    dC   	79  !y 7;##TY$56664444t4444r   c                      t          |t                    rX j        s|S | j        k    rdS  j         j        j        z   }|                    |          sJ |t          |          d          S  fd|D             S )N c                 :    g | ]}                     |          S r	   _relpathr   s     r   r    z*DirFileSystem._relpath.<locals>.<listcomp>=   s%    777e$$777r   )r!   r"   r   r   r#   
startswithlen)r   r   prefixs   `  r   r*   zDirFileSystem._relpath4   s    dC   	'9 ty  rY,F??6*****F&&7777$7777r   c                     | j         j        S N)r   r#   r   s    r   r#   zDirFileSystem.sepA   s    w{r   c                 6   K    | j         j        |i | d {V S r/   )r   set_session)r   argskwargss      r   r2   zDirFileSystem.set_sessionE   s2      (TW($9&999999999r   c                 ^   K    | j         j        |                     |          fi | d {V S r/   )r   _rm_filer   r   r   r4   s      r   r6   zDirFileSystem._rm_fileH   sA      %TW%djj&6&6AA&AAAAAAAAAr   c                 N     | j         j        |                     |          fi |S r/   )r   rm_filer   r7   s      r   r9   zDirFileSystem.rm_fileK   s*    twtzz$//::6:::r   c                 d   K    | j         j        |                     |          g|R i | d {V S r/   )r   _rmr   r   r   r3   r4   s       r   r;   zDirFileSystem._rmN   sH       TW[D!1!1CDCCCFCCCCCCCCCr   c                 T     | j         j        |                     |          g|R i |S r/   )r   rmr   r<   s       r   r>   zDirFileSystem.rmQ   s2    twz$**T**<T<<<V<<<r   c                    K    | j         j        |                     |          |                     |          fi | d {V S r/   )r   _cp_filer   r   path1path2r4   s       r   r@   zDirFileSystem._cp_fileT   sO      %TW%djj&7&7E9J9JUUfUUUUUUUUUr   c                 v     | j         j        |                     |          |                     |          fi |S r/   )r   cp_filer   rA   s       r   rE   zDirFileSystem.cp_fileW   s8    twtzz%00$**U2C2CNNvNNNr   c                    K    | j         j        |                     |          |                     |          g|R i | d {V S r/   )r   _copyr   r   rB   rC   r3   r4   s        r   rG   zDirFileSystem._copyZ   sz       #TW]JJuJJu
 
 
 
 	
 
 
 
 
 
 
 
 	
r   c                 |     | j         j        |                     |          |                     |          g|R i |S r/   )r   copyr   rH   s        r   rJ   zDirFileSystem.copyh   sV    tw|JJuJJu
 
 
 
 	
 
 	
r   c                 d   K    | j         j        |                     |          g|R i | d {V S r/   )r   _piper   r<   s       r   rL   zDirFileSystem._pipep   sH      "TW]4::d#3#3EdEEEfEEEEEEEEEr   c                 T     | j         j        |                     |          g|R i |S r/   )r   piper   r<   s       r   rN   zDirFileSystem.pipes   2    tw|DJJt,,>t>>>v>>>r   c                 d   K    | j         j        |                     |          g|R i | d {V S r/   )r   	_cat_filer   r<   s       r   rQ   zDirFileSystem._cat_filev   I      &TW&tzz$'7'7I$III&IIIIIIIIIr   c                 T     | j         j        |                     |          g|R i |S r/   )r   cat_filer   r<   s       r   rT   zDirFileSystem.cat_filey   3    tw

4 0 0B4BBB6BBBr   c                     K     j         j                             |          g|R i | d {V }t          |t                    r  fd|                                D             S |S )Nc                 B    i | ]\  }}                     |          |S r	   r)   r   keyvaluer   s      r   
<dictcomp>z&DirFileSystem._cat.<locals>.<dictcomp>   +    LLL*#uDMM#&&LLLr   )r   _catr   r!   dictitemsr   r   r3   r4   rets   `    r   r]   zDirFileSystem._cat|   s       DGLJJt

 
 
 
 
 
 
 
 
 
 
 c4   	MLLLL		LLLL
r   c                        j         j                             |          g|R i |}t          |t                    r  fd|                                D             S |S )Nc                 B    i | ]\  }}                     |          |S r	   r)   rX   s      r   r[   z%DirFileSystem.cat.<locals>.<dictcomp>   r\   r   )r   catr   r!   r^   r_   r`   s   `    r   rd   zDirFileSystem.cat   s    dgkJJt

 
 
 
 
 c4   	MLLLL		LLLL
r   c                 `   K    | j         j        ||                     |          fi | d {V S r/   )r   	_put_filer   r   lpathrpathr4   s       r   rf   zDirFileSystem._put_file   sC      &TW&udjj.?.?JJ6JJJJJJJJJr   c                 P     | j         j        ||                     |          fi |S r/   )r   put_filer   rg   s       r   rk   zDirFileSystem.put_file   s-    twtzz%'8'8CCFCCCr   c                 f   K    | j         j        ||                     |          g|R i | d {V S r/   )r   _putr   r   rh   ri   r3   r4   s        r   rm   zDirFileSystem._put   sn       "TW\JJu
 
 
 
 	
 
 
 
 
 
 
 
 	
r   c                 V     | j         j        ||                     |          g|R i |S r/   )r   putr   rn   s        r   rp   zDirFileSystem.put   sJ    tw{JJu
 
 
 
 	
 
 	
r   c                 `   K    | j         j        |                     |          |fi | d {V S r/   )r   	_get_filer   r   ri   rh   r4   s       r   rr   zDirFileSystem._get_file   sC      &TW&tzz%'8'8%JJ6JJJJJJJJJr   c                 P     | j         j        |                     |          |fi |S r/   )r   get_filer   rs   s       r   ru   zDirFileSystem.get_file   s-    tw

5 1 15CCFCCCr   c                 d   K    | j         j        |                     |          g|R i | d {V S r/   )r   _getr   r   ri   r3   r4   s       r   rw   zDirFileSystem._get   sH      !TW\$**U"3"3EdEEEfEEEEEEEEEr   c                 T     | j         j        |                     |          g|R i |S r/   )r   getr   rx   s       r   rz   zDirFileSystem.get   s2    tw{4::e,,>t>>>v>>>r   c                 l   K   | j                             |                     |                     d {V S r/   )r   _isfiler   r%   s     r   r|   zDirFileSystem._isfile   8      W__TZZ%5%5666666666r   c                 \    | j                             |                     |                    S r/   )r   isfiler   r%   s     r   r   zDirFileSystem.isfile   "    w~~djj..///r   c                 l   K   | j                             |                     |                     d {V S r/   )r   _isdirr   r%   s     r   r   zDirFileSystem._isdir   s8      W^^DJJt$4$4555555555r   c                 \    | j                             |                     |                    S r/   )r   isdirr   r%   s     r   r   zDirFileSystem.isdir   "    w}}TZZ--...r   c                 l   K   | j                             |                     |                     d {V S r/   )r   _sizer   r%   s     r   r   zDirFileSystem._size   s8      W]]4::d#3#3444444444r   c                 \    | j                             |                     |                    S r/   )r   sizer   r%   s     r   r   zDirFileSystem.size   s"    w||DJJt,,---r   c                 l   K   | j                             |                     |                     d {V S r/   )r   _existsr   r%   s     r   r   zDirFileSystem._exists   r}   r   c                 \    | j                             |                     |                    S r/   )r   existsr   r%   s     r   r   zDirFileSystem.exists   r   r   c                 ^   K    | j         j        |                     |          fi | d {V S r/   )r   _infor   r7   s      r   r   zDirFileSystem._info   s@      "TW]4::d#3#3>>v>>>>>>>>>r   c                 N     | j         j        |                     |          fi |S r/   )r   infor   r7   s      r   r   zDirFileSystem.info   s*    tw|DJJt,,77777r   Tc                 T  K    | j         j        |                     |          fd|i| d {V                                 }|rPg }|D ]I}|                                }|                     |d                   |d<   |                    |           J|S |                     |          S Ndetailname)r   _lsr   rJ   r*   appendr   r   r   r4   ra   outentrys          r   r   zDirFileSystem._ls   s       TW[D!1!1KK&KFKKKKKKKKQQSS 	C " "

 $eFm < <f

5!!!!J}}S!!!r   c                 D    | j         j        |                     |          fd|i|                                }|rPg }|D ]I}|                                }|                     |d                   |d<   |                    |           J|S |                     |          S r   )r   lsr   rJ   r*   r   r   s          r   r   zDirFileSystem.ls   s    dgjD))CC&CFCCHHJJ 	C " "

 $eFm < <f

5!!!!J}}S!!!r   c                   K    | j         j        |                     |          g|R i |2 3 d {V \  }}}|                     |          ||fW V  '6 d S r/   )r   _walkr   r*   r   r   r3   r4   rootdirsfiless          r   r   zDirFileSystem._walk   s      '4tw}TZZ5E5E'W'W'W'WPV'W'W 	3 	3 	3 	3 	3 	3 	3#$e--%%tU222222 (X'W'Ws   Ac              /      K    | j         j        |                     |          g|R i |D ] \  }}}|                     |          ||fV  !d S r/   )r   walkr   r*   r   s          r   r   zDirFileSystem.walk   sr      !-djj.>.>!P!P!P!P!P!P 	3 	3D$--%%tU22222	3 	3r   c                     K   |                     dd          }  j        j                             |          fi | d {V }|r  fd|                                D             S                      |          S )Nr   Fc                 B    i | ]\  }}                     |          |S r	   r)   r   r   r   r   s      r   r[   z'DirFileSystem._glob.<locals>.<dictcomp>   +    LLL*$DMM$''LLLr   )rz   r   _globr   r_   r*   r   r   r4   r   ra   s   `    r   r   zDirFileSystem._glob   s      He,,!DGM$**T"2"2==f======== 	MLLLL		LLLL}}S!!!r   c                      |                     dd          }  j        j                             |          fi |}|r  fd|                                D             S                      |          S )Nr   Fc                 B    i | ]\  }}                     |          |S r	   r)   r   s      r   r[   z&DirFileSystem.glob.<locals>.<dictcomp>  r   r   )rz   r   globr   r_   r*   r   s   `    r   r   zDirFileSystem.glob  sz    He,,dgl4::d++66v66 	MLLLL		LLLL}}S!!!r   c                     K   |                     dd          }  j        j                             |          g|R i | d {V }|r|S  fd|                                D             S )NtotalTc                 B    i | ]\  }}                     |          |S r	   r)   r   r   r   r   s      r   r[   z%DirFileSystem._du.<locals>.<dictcomp>  +    HHHjdDd##THHHr   )rz   r   _dur   r_   r   r   r3   r4   r   ra   s   `     r   r   zDirFileSystem._du  s      

7D))DGK

4 0 0B4BBB6BBBBBBBB 	JHHHHCIIKKHHHHr   c                      |                     dd          }  j        j                             |          g|R i |}|r|S  fd|                                D             S )Nr   Tc                 B    i | ]\  }}                     |          |S r	   r)   r   s      r   r[   z$DirFileSystem.du.<locals>.<dictcomp>  r   r   )rz   r   dur   r_   r   s   `     r   r   zDirFileSystem.du  st    

7D))dgjD));D;;;F;; 	JHHHHCIIKKHHHHr   c                     K   |                     dd          }  j        j                             |          g|R i | d {V }|r  fd|                                D             S                      |          S )Nr   Fc                 B    i | ]\  }}                     |          |S r	   r)   r   s      r   r[   z'DirFileSystem._find.<locals>.<dictcomp>  r   r   )rz   r   _findr   r_   r*   r   r   r3   r4   r   ra   s   `     r   r   zDirFileSystem._find  s      He,,!DGM$**T"2"2DTDDDVDDDDDDDD 	MLLLL		LLLL}}S!!!r   c                      |                     dd          }  j        j                             |          g|R i |}|r  fd|                                D             S                      |          S )Nr   Fc                 B    i | ]\  }}                     |          |S r	   r)   r   s      r   r[   z&DirFileSystem.find.<locals>.<dictcomp>#  r   r   )rz   r   findr   r_   r*   r   s   `     r   r   zDirFileSystem.find  s    He,,dgl4::d++=d===f== 	MLLLL		LLLL}}S!!!r   c                    K   |                       | j        j        |                     |          g|R i | d {V           S r/   )r*   r   _expand_pathr   r<   s       r   r   zDirFileSystem._expand_path&  s\      }}&$'&tzz$'7'7I$III&IIIIIIII
 
 	
r   c                 z    |                       | j        j        |                     |          g|R i |          S r/   )r*   r   expand_pathr   r<   s       r   r   zDirFileSystem.expand_path+  s@    }}0TW0D1A1ASDSSSFSSTTTr   c                 d   K    | j         j        |                     |          g|R i | d {V S r/   )r   _mkdirr   r<   s       r   r   zDirFileSystem._mkdir.  sH      #TW^DJJt$4$4FtFFFvFFFFFFFFFr   c                 T     | j         j        |                     |          g|R i |S r/   )r   mkdirr   r<   s       r   r   zDirFileSystem.mkdir1  s2    tw}TZZ--???????r   c                 d   K    | j         j        |                     |          g|R i | d {V S r/   )r   	_makedirsr   r<   s       r   r   zDirFileSystem._makedirs4  rR   r   c                 T     | j         j        |                     |          g|R i |S r/   )r   makedirsr   r<   s       r   r   zDirFileSystem.makedirs7  rU   r   c                 \    | j                             |                     |                    S r/   )r   rmdirr   r%   s     r   r   zDirFileSystem.rmdir:  r   r   c                 v     | j         j        |                     |          |                     |          fi |S r/   )r   mv_filer   rA   s       r   r   zDirFileSystem.mv_file=  sG    twJJuJJu
 
 
 
 	
r   c                 N     | j         j        |                     |          fi |S r/   )r   touchr   r7   s      r   r   zDirFileSystem.touchD  s*    tw}TZZ--88888r   c                 \    | j                             |                     |                    S r/   )r   createdr   r%   s     r   r   zDirFileSystem.createdG  s"    wtzz$//000r   c                 \    | j                             |                     |                    S r/   )r   modifiedr   r%   s     r   r   zDirFileSystem.modifiedJ  s$    w

4 0 0111r   c                 T     | j         j        |                     |          g|R i |S r/   )r   signr   r<   s       r   r   zDirFileSystem.signM  rO   r   c                 @    | j         j         d| j         d| j         dS )Nz(path='z', fs=))r   __qualname__r   r   r0   s    r   __repr__zDirFileSystem.__repr__P  s*    .-QQdiQQtwQQQQr   c                 T     | j         j        |                     |          g|R i |S r/   )r   openr   r<   s       r   r   zDirFileSystem.openS  sG     tw|JJt

 
 
 
 
 	
r   )NNNNN)T)B__name__
__module__r   r   r   r*   propertyr#   r2   r6   r9   r;   r>   r@   rE   rG   rJ   rL   rN   rQ   rT   r]   rd   rf   rk   rm   rp   rr   ru   rw   rz   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__)r   s   @r   r   r      s%        # # # # # #J5 5 5	8 	8 	8   X: : :B B B; ; ;D D D= = =V V VO O O
 
 

 
 
F F F? ? ?J J JC C C
 
 

 
 
K K KD D D
 
 

 
 
K K KD D DF F F? ? ?7 7 70 0 06 6 6/ / /5 5 5. . .7 7 70 0 0? ? ?8 8 8
" 
" 
" 
"
" 
" 
" 
"3 3 33 3 3" " "" " "I I II I I" " "" " "
 
 

U U UG G G@ @ @J J JC C C/ / /
 
 
9 9 91 1 12 2 2? ? ?R R R

 

 

 

 

 

 

r   r   N)r'   r   asynr   r   r	   r   r   <module>r      sg          " " " " " "X
 X
 X
 X
 X
O X
 X
 X
 X
 X
r   