
    jP1                     H    d dl mZ d dlmZ ddlmZ  G d dee          ZdS )   )
filesystem)AsyncFileSystem   )ChainedFileSystemc                       e Zd ZdZdZ	 	 	 	 	 dH fd	Zd Zd Zed             Z	d Z
d	 Zd
 Zd Zd ZdIdZd Zd Zd Zd Zd Zd Zd Zd Z	 dJd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.dKd/Z/dKd0Z0d1 Z1d2 Z2d3 Z3d4 Z4d5 Z5d6 Z6d7 Z7d8 Z8d9 Z9d: Z:d; Z;d< Z<d= Z=d> Z>d? Z?d@ Z@dA ZAdB ZBdC ZCdD ZDdE ZEdF ZFdG ZG xZHS )LDirFileSystemzDirectory prefix filesystem

    The DirFileSystem is a filesystem-wrapper. It assumes every path it is dealing with
    is relative to the `path`. After performing the necessary paths operation it
    delegates everything to the wrapped filesystem.
    dirNc                 .    t                      j        di | |t          dd|i|pi }|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protocolz(can't use asynchronous with non-async fsz7both dirfs and fs should be in the same sync/async mode )	super__init__r   asynchronous
async_impl
ValueError_strip_protocolpathfs)selfr   r   fotarget_protocoltarget_optionsstorage_options	__class__s          a/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/fsspec/implementations/dirfs.pyr   zDirFileSystem.__init__   s    * 	++?+++:OO_O9M2OOBzr 	IR] 	IGHHH= 	XT."/AAVWWW&&t,,	    c                 J    t          |t                    rK j        s|S |s j        S  j        j                             j                             |          f          S t          |t                    r  fd|                                D             S  fd|D             S )Nc                 B    i | ]\  }}                     |          |S r   _join).0_pathvaluer   s      r   
<dictcomp>z'DirFileSystem._join.<locals>.<dictcomp>;   s+    NNNDJJu%%uNNNr   c                 :    g | ]}                     |          S r   r   r!   r"   r   s     r   
<listcomp>z'DirFileSystem._join.<locals>.<listcomp><   s%    444e

5!!444r   )	
isinstancestrr   r   sepjoinr   dictitemsr   r   s   ` r   r    zDirFileSystem._join3   s    dC   	M9  !y 7;##TY0D0DT0J0J$KLLLdD!! 	ONNNNNNNN4444t4444r   c                     t          |t                    r܉ j        s|S | j        k    s7 j                             j        j                  r| j        dd          k    rdS  j         j        j        z   } j                             j        j                  r)|                     j        j                  s
|dd          }|                    |          sJ |t          |          d          S  fd|D             S )Nr    c                 :    g | ]}                     |          S r   _relpathr&   s     r   r'   z*DirFileSystem._relpath.<locals>.<listcomp>M   s%    777e$$777r   )r(   r)   r   
startswithr   r*   len)r   r   prefixs   `  r   r3   zDirFileSystem._relpath>   s    dC   	'9  ty  	$$TW[11 !6:dim6K6KrY,Fy##DGK00 $9U9U $??6*****F&&7777$7777r   c                     | j         j        S N)r   r*   r   s    r   r*   zDirFileSystem.sepQ   s    w{r   c                 6   K    | j         j        |i | d {V S r8   )r   set_session)r   argskwargss      r   r;   zDirFileSystem.set_sessionU   s2      (TW($9&999999999r   c                 ^   K    | j         j        |                     |          fi | d {V S r8   )r   _rm_filer    r   r   r=   s      r   r?   zDirFileSystem._rm_fileX   sA      %TW%djj&6&6AA&AAAAAAAAAr   c                 N     | j         j        |                     |          fi |S r8   )r   rm_filer    r@   s      r   rB   zDirFileSystem.rm_file[   s*    twtzz$//::6:::r   c                 d   K    | j         j        |                     |          g|R i | d {V S r8   )r   _rmr    r   r   r<   r=   s       r   rD   zDirFileSystem._rm^   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 r8   )r   rmr    rE   s       r   rG   zDirFileSystem.rma   s2    twz$**T**<T<<<V<<<r   Fc                 b    | j                             |                     |          ||          S )N)	recursivemaxdepth)r   deleter    )r   r   rI   rJ   s       r   rK   zDirFileSystem.deleted   s(    w~~djj..)h~WWWr   c                    K    | j         j        |                     |          |                     |          fi | d {V S r8   )r   _cp_filer    r   path1path2r=   s       r   rM   zDirFileSystem._cp_fileg   sO      %TW%djj&7&7E9J9JUUfUUUUUUUUUr   c                 v     | j         j        |                     |          |                     |          fi |S r8   )r   cp_filer    rN   s       r   rR   zDirFileSystem.cp_filej   s8    twtzz%00$**U2C2CNNvNNNr   c                    K    | j         j        |                     |          |                     |          g|R i | d {V S r8   )r   _copyr    r   rO   rP   r<   r=   s        r   rT   zDirFileSystem._copym   sz       #TW]JJuJJu
 
 
 
 	
 
 
 
 
 
 
 
 	
r   c                 |     | j         j        |                     |          |                     |          g|R i |S r8   )r   copyr    rU   s        r   rW   zDirFileSystem.copy{   sV    tw|JJuJJu
 
 
 
 	
 
 	
r   c                 d   K    | j         j        |                     |          g|R i | d {V S r8   )r   _piper    rE   s       r   rY   zDirFileSystem._pipe   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 r8   )r   piper    rE   s       r   r[   zDirFileSystem.pipe   2    tw|DJJt,,>t>>>v>>>r   c                 d   K    | j         j        |                     |          g|R i | d {V S r8   )r   
_pipe_filer    rE   s       r   r^   zDirFileSystem._pipe_file   sI      'TW'

4(8(8J4JJJ6JJJJJJJJJr   c                 T     | j         j        |                     |          g|R i |S r8   )r   	pipe_filer    rE   s       r   r`   zDirFileSystem.pipe_file   s3     tw D!1!1CDCCCFCCCr   c                 X     | j         j        |                     |          |f|||d|S )N)encodingerrorsnewline)r   
write_textr    )r   r   r#   rb   rc   rd   r=   s          r   re   zDirFileSystem.write_text   sN     "tw!JJt
 
 
 
 
 	
r   c                 d   K    | j         j        |                     |          g|R i | d {V S r8   )r   	_cat_filer    rE   s       r   rg   zDirFileSystem._cat_file   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 r8   )r   cat_filer    rE   s       r   rj   zDirFileSystem.cat_file   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   r2   r!   keyr#   r   s      r   r$   z&DirFileSystem._cat.<locals>.<dictcomp>   +    LLL*#uDMM#&&LLLr   )r   _catr    r(   r,   r-   r   r   r<   r=   rets   `    r   rq   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   r2   rn   s      r   r$   z%DirFileSystem.cat.<locals>.<dictcomp>   rp   r   )r   catr    r(   r,   r-   rr   s   `    r   rv   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 r8   )r   	_put_filer    r   lpathrpathr=   s       r   rx   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 r8   )r   put_filer    ry   s       r   r}   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 r8   )r   _putr    r   rz   r{   r<   r=   s        r   r   zDirFileSystem._put   sn       "TW\JJu
 
 
 
 	
 
 
 
 
 
 
 
 	
r   c                 V     | j         j        ||                     |          g|R i |S r8   )r   putr    r   s        r   r   zDirFileSystem.put   sJ    tw{JJu
 
 
 
 	
 
 	
r   c                 `   K    | j         j        |                     |          |fi | d {V S r8   )r   	_get_filer    r   r{   rz   r=   s       r   r   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 r8   )r   get_filer    r   s       r   r   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 r8   )r   _getr    r   r{   r<   r=   s       r   r   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 r8   )r   getr    r   s       r   r   zDirFileSystem.get   s2    tw{4::e,,>t>>>v>>>r   c                 l   K   | j                             |                     |                     d {V S r8   )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 r8   )r   isfiler    r.   s     r   r   zDirFileSystem.isfile   "    w~~djj..///r   c                 l   K   | j                             |                     |                     d {V S r8   )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 r8   )r   isdirr    r.   s     r   r   zDirFileSystem.isdir   "    w}}TZZ--...r   c                 l   K   | j                             |                     |                     d {V S r8   )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 r8   )r   sizer    r.   s     r   r   zDirFileSystem.size   s"    w||DJJt,,---r   c                 l   K   | j                             |                     |                     d {V S r8   )r   _existsr    r.   s     r   r   zDirFileSystem._exists   r   r   c                 \    | j                             |                     |                    S r8   )r   existsr    r.   s     r   r   zDirFileSystem.exists   r   r   c                    K    | j         j        |                     |          fi | d {V }|                                }|                     |d                   |d<   |S Nname)r   _infor    rW   r3   r   r   r=   infos       r   r   zDirFileSystem._info   sj      "TW]4::d#3#3>>v>>>>>>>>yy{{}}T&\22Vr   c                      | j         j        |                     |          fi |}|                                }|                     |d                   |d<   |S r   )r   r   r    rW   r3   r   s       r   r   zDirFileSystem.info   sT    tw|DJJt,,7777yy{{}}T&\22Vr   Tc                 T  K    | j         j        |                     |          fd|i| d {V                                 }|rPg }|D ]I}|                                }|                     |d                   |d<   |                    |           J|S |                     |          S Ndetailr   )r   _lsr    rW   r3   appendr   r   r   r=   rs   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    rW   r3   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 r8   )r   _walkr    r3   r   r   r<   r=   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 r8   )r   walkr    r3   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   r2   r!   r   r   r   s      r   r$   z'DirFileSystem._glob.<locals>.<dictcomp>)  +    LLL*$DMM$''LLLr   )r   r   _globr    r-   r3   r   r   r=   r   rs   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   r2   r   s      r   r$   z&DirFileSystem.glob.<locals>.<dictcomp>0  r   r   )r   r   globr    r-   r3   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   r2   r!   r   r   r   s      r   r$   z%DirFileSystem._du.<locals>.<dictcomp>9  +    HHHjdDd##THHHr   )r   r   _dur    r-   r   r   r<   r=   r   rs   s   `     r   r   zDirFileSystem._du3  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   r2   r   s      r   r$   z$DirFileSystem.du.<locals>.<dictcomp>A  r   r   )r   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   r2   r   s      r   r$   z'DirFileSystem._find.<locals>.<dictcomp>G  r   r   )r   r   _findr    r-   r3   r   r   r<   r=   r   rs   s   `     r   r   zDirFileSystem._findC  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   r2   r   s      r   r$   z&DirFileSystem.find.<locals>.<dictcomp>N  r   r   )r   r   findr    r-   r3   r   s   `     r   r   zDirFileSystem.findJ  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 r8   )r3   r   _expand_pathr    rE   s       r   r   zDirFileSystem._expand_pathQ  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 r8   )r3   r   expand_pathr    rE   s       r   r   zDirFileSystem.expand_pathV  s@    }}0TW0D1A1ASDSSSFSSTTTr   c                 d   K    | j         j        |                     |          g|R i | d {V S r8   )r   _mkdirr    rE   s       r   r   zDirFileSystem._mkdirY  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 r8   )r   mkdirr    rE   s       r   r   zDirFileSystem.mkdir\  s2    tw}TZZ--???????r   c                 d   K    | j         j        |                     |          g|R i | d {V S r8   )r   	_makedirsr    rE   s       r   r   zDirFileSystem._makedirs_  rh   r   c                 T     | j         j        |                     |          g|R i |S r8   )r   makedirsr    rE   s       r   r   zDirFileSystem.makedirsb  rk   r   c                 \    | j                             |                     |                    S r8   )r   rmdirr    r.   s     r   r   zDirFileSystem.rmdire  r   r   c                 v     | j         j        |                     |          |                     |          fi |S r8   )r   mvr    rN   s       r   r   zDirFileSystem.mvh  sG    twzJJuJJu
 
 
 
 	
r   c                 N     | j         j        |                     |          fi |S r8   )r   touchr    r@   s      r   r   zDirFileSystem.toucho  s*    tw}TZZ--88888r   c                 \    | j                             |                     |                    S r8   )r   createdr    r.   s     r   r   zDirFileSystem.createdr  s"    wtzz$//000r   c                 \    | j                             |                     |                    S r8   )r   modifiedr    r.   s     r   r   zDirFileSystem.modifiedu  s$    w

4 0 0111r   c                 T     | j         j        |                     |          g|R i |S r8   )r   signr    rE   s       r   r   zDirFileSystem.signx  r\   r   c                 @    | j         j         d| j         d| j         dS )Nz(path='z', fs=))r   __qualname__r   r   r9   s    r   __repr__zDirFileSystem.__repr__{  s*    .-QQdiQQtwQQQQr   c                 T     | j         j        |                     |          g|R i |S r8   )r   openr    rE   s       r   r   zDirFileSystem.open~  sG     tw|JJt

 
 
 
 
 	
r   c                 d   K    | j         j        |                     |          g|R i | d {V S r8   )r   
open_asyncr    rE   s       r   r   zDirFileSystem.open_async  sj       (TW'JJt

 
 
 
 
 
 
 
 
 
 
 	
r   )NNNNN)FN)NNN)T)I__name__
__module__r   __doc__r   r   r    r3   propertyr*   r;   r?   rB   rD   rG   rK   rM   rR   rT   rW   rY   r[   r^   r`   re   rg   rj   rq   rv   rx   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   r   r   r   r   r   r   r   r   __classcell__)r   s   @r   r   r      s         H ! ! ! ! ! !F	5 	5 	58 8 8&   X: : :B B B; ; ;D D D= = =X X X XV V VO O O
 
 

 
 
F F F? ? ?K K KD D D @D

 

 

 

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    
" 
" 
" 
"
" 
" 
" 
"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)r0   r   asynr   chainedr   r   r   r   r   <module>r      s|          " " " " " " & & & & & &N
 N
 N
 N
 N
O%6 N
 N
 N
 N
 N
r   