§
    g˜ºhø(  ã                  óÞ   — d dl mZ d dlZd dlmZmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZmZ d dlmZ d d	lmZ d d
lmZ  ej        d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚdatetimeÚtimezone)Ú	ENOTEMPTY)ÚBytesIO)ÚPurePathÚPureWindowsPath)ÚAnyÚClassVar)ÚAbstractFileSystem)ÚLocalFileSystem)Ústringify_pathzfsspec.memoryfsc                  ó°   — e Zd ZU dZi Zded<   dgZdZdZe	d„ ¦   «         Z
dd	„Zdd
„Zdd„Zdd„Zd„ Zd„ Z	 	 	 	 dd„Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd d„ZdS )!ÚMemoryFileSystemz A filesystem based on a dict of BytesIO objects

    This is a global filesystem so instances of this class all point to the same
    in memory filesystem.
    zClassVar[dict[str, Any]]ÚstoreÚ Úmemoryú/c                ób  — t          |t          ¦  «        r8t          |t          ¦  «        rt          j        |¦  «        S t          |¦  «        }|                     d¦  «        }d|v sd|v r|                     d¦  «        S |                     d¦  «                             d¦  «        }|rd|z   ndS )Nz	memory://z::z://r   r   )	Ú
isinstancer   r	   r   Ú_strip_protocolr   ÚremoveprefixÚrstripÚlstrip)ÚclsÚpaths     úe/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/fsspec/implementations/memory.pyr   z MemoryFileSystem._strip_protocol   s¬   € å�d�HÑ%Ô%ð 	,Ý˜$¥Ñ0Ô0ð ,Ý&Ô6°tÑ<Ô<Ð<å% dÑ+Ô+�à× Ò  Ñ-Ô-ˆØ�4ˆ<ˆ<˜5 D˜=˜=Ø—;’;˜sÑ#Ô#Ð#Ø�{Š{˜3ÑÔ×&Ò& sÑ+Ô+ˆØ!Ð)ˆs�T‰zˆz rÐ)ó    Tc                ó6  — |                       |¦  «        }|| j        v r?|s|gS || j        |         j        d| j        |         j                             ¦   «         dœgS t          ¦   «         }|dz   }g }t          | j        ¦  «        D �]}|                     |¦  «        rðd|t          |¦  «        d …         vrM| 	                    || j        |         j        d| j        |         j                             ¦   «         dœ¦  «         Œ~t          |¦  «        t          |¦  «        k    rj||t          |¦  «        d …          
                    dd¦  «        d         z   }||vr2|pg }| 	                    |dddœ¦  «         |                     |¦  «         �Œ
| j        D ]É}|                     |¦  «        r²d|t          |¦  «        d …         vr3||vr.| 	                    |dddœ¦  «         |                     |¦  «         Œc||t          |¦  «        d …          
                    dd¦  «        d         z   }||vr.| 	                    |dddœ¦  «         |                     |¦  «         ŒÊ|s|| j        v rg S t          |¦  «        ‚|r|S t          d„ |D ¦   «         ¦  «        S )	NÚfile©ÚnameÚsizeÚtypeÚcreatedr   é   r   Ú	directory©r"   r#   r$   c                ó   — g | ]
}|d          ‘ŒS )r"   © )Ú.0Úfs     r   ú
<listcomp>z'MemoryFileSystem.ls.<locals>.<listcomp>i   s   € Ð.Ð.Ð. Q�q˜”yÐ.Ð.Ð.r   )r   r   r#   r%   Ú	timestampÚsetÚtupleÚ
startswithÚlenÚappendÚsplitÚaddÚpseudo_dirsÚFileNotFoundErrorÚsorted)	Úselfr   ÚdetailÚkwargsÚpathsÚstarterÚoutÚp2Úppaths	            r   ÚlszMemoryFileSystem.ls+   sí  € Ø×#Ò# DÑ)Ô)ˆØ�4”:ÐÐàð Ø�v�ð !Ø œJ tÔ,Ô1Ø"Ø#œz¨$Ô/Ô7×AÒAÑCÔCð	ð ðð õ ‘”ˆØ˜‘*ˆØˆÝ˜œ
Ñ#Ô#ð 	)ñ 	)ˆBØ�}Š}˜WÑ%Ô%ð )Ø˜b¥ W¡¤  Ô0Ð0Ð0à—J’Jà$&Ø$(¤J¨r¤NÔ$7Ø$*Ø'+¤z°"¤~Ô'=×'GÒ'GÑ'IÔ'Ið	ð ñô ð ð õ ˜‘W”W�s 7™|œ|Ò+Ð+à# b­¨W©¬¨¨Ô&8×&>Ò&>¸sÀAÑ&FÔ&FÀqÔ&IÑI�EØ EÐ)Ð)Ø!˜i R˜ØŸ
š
à(-Ø()Ø(3ðð ñô ð ð Ÿ	š	 %Ñ(Ô(Ð(ùØÔ"ð 	)ð 	)ˆBØ�}Š}˜WÑ%Ô%ð )Ø˜b¥ W¡¤  Ô0Ð0Ð0à ��ØŸ
š
¨B¸À;Ð#OÐ#OÑPÔPÐPØŸ	š	 "™œ˜øð $ b­¨W©¬¨¨Ô&8×&>Ò&>¸sÀAÑ&FÔ&FÀqÔ&IÑI�EØ EÐ)Ð)ØŸ
š
¨E¸1ÀkÐ#RÐ#RÑSÔSÐSØŸ	š	 %Ñ(Ô(Ð(øØð 	*Ø�tÔ'Ð'Ð'à�	Ý# DÑ)Ô)Ð)Øð 	ØˆJÝÐ.Ð.¨#Ð.Ñ.Ô.Ñ/Ô/Ð/r   c                ód  — |                       |¦  «        }|| j        v s	|| j        v rt          |¦  «        ‚|                      |¦  «                             d¦  «        rJ|                      |                      |¦  «        ¦  «        r"t          |                      |¦  «        ¦  «        ‚|r\|                      |¦  «                             d¦  «        r4	  | j        |                      |¦  «        |fi |¤Ž n# t          $ r Y nw xY w|r%|| j        vr| j         	                    |¦  «         d S d S d S )Nr   )
r   r   r6   ÚFileExistsErrorÚ_parentÚstripÚisfileÚNotADirectoryErrorÚmkdirr3   )r9   r   Úcreate_parentsr;   s       r   rH   zMemoryFileSystem.mkdirk   sS  € Ø×#Ò# DÑ)Ô)ˆØ�4”:ÐÐ ¨Ô)9Ð!9Ð!9Ý! $Ñ'Ô'Ð'Ø�<Š<˜ÑÔ×#Ò# CÑ(Ô(ð 	9¨T¯[ª[¸¿ºÀdÑ9KÔ9KÑ-LÔ-Lð 	9Ý$ T§\¢\°$Ñ%7Ô%7Ñ8Ô8Ð8Øð 	˜dŸlšl¨4Ñ0Ô0×6Ò6°sÑ;Ô;ð 	ðØ�”
˜4Ÿ<š<¨Ñ-Ô-¨~ÐHÐHÀÐHÐHÐHÐHøÝ"ð ð ð Ø�ðøøøàð 	*�D Ô 0Ð0Ð0ØÔ×#Ò# DÑ)Ô)Ð)Ð)Ð)ð	*ð 	*Ð0Ð0s   Ã"C7 Ã7
DÄDFc                ó^   — 	 |                       |d¬¦  «         d S # t          $ r |s‚ Y d S w xY w)NT)rI   )rH   rC   )r9   r   Úexist_oks      r   ÚmakedirszMemoryFileSystem.makedirsy   sX   € ð	Ø�JŠJ�t¨DˆJÑ1Ô1Ð1Ð1Ð1øÝð 	ð 	ð 	Øð Øðð ð ð	øøøs   ‚ ›,«,Ú	overwritec                óJ   — |dk    rdnd}|                       |||¬¦  «         dS )zSSet the bytes of given file

        Avoids copies of the data if possible
        ÚcreateÚxbÚwb)ÚmodeÚdataN)Úopen)r9   r   ÚvaluerR   r;   s        r   Ú	pipe_filezMemoryFileSystem.pipe_file€   s5   € ð
 ˜xÒ'Ð'ˆtˆt¨TˆØ�	Š	�$˜T¨ˆ	Ñ.Ô.Ð.Ð.Ð.r   c                óú   — |                       |¦  «        }|dk    rd S || j        v rG|                      |¦  «        s| j                             |¦  «         d S t	          t
          d|¦  «        ‚t          |¦  «        ‚)Nr   zDirectory not empty)r   r6   rA   ÚremoveÚOSErrorr   r7   ©r9   r   s     r   ÚrmdirzMemoryFileSystem.rmdirˆ   s‚   € Ø×#Ò# DÑ)Ô)ˆØ�2Š:ˆ:àˆFØ�4Ô#Ð#Ð#Ø—7’7˜4‘=”=ð FØÔ ×'Ò'¨Ñ-Ô-Ð-Ð-Ð-å�iÐ)>ÀÑEÔEÐEå# DÑ)Ô)Ð)r   c                ól  ‡— t                                d‰¦  «         |                      ‰¦  «        Š‰| j        v s5t	          ˆfd„t          | j        ¦  «        | j        z   D ¦   «         ¦  «        r‰dddœS ‰| j        v r(| j        ‰         }‰|j        dt          |dd ¦  «        dœS t          ‰¦  «        ‚)	Nzinfo: %sc              3  óH   •K  — | ]}|                      ‰d z   ¦  «        V — ŒdS )r   N)r1   )r+   Úpr   s     €r   ú	<genexpr>z(MemoryFileSystem.info.<locals>.<genexpr>˜   sD   øè è € ð +
ð +
Ø)*ˆA�LŠL˜ ™Ñ$Ô$ð+
ð +
ð +
ð +
ð +
ð +
r   r   r'   r(   r    r%   r!   )
ÚloggerÚdebugr   r6   ÚanyÚlistr   r#   Úgetattrr7   )r9   r   r;   Úfilelikes    `  r   ÚinfozMemoryFileSystem.info•   sí   ø€ Ý�Š�Z Ñ&Ô&Ð&Ø×#Ò# DÑ)Ô)ˆØ�4Ô#Ð#Ð#¥sð +
ð +
ð +
ð +
Ý.2°4´:Ñ.>Ô.>ÀÔAQÑ.Qð+
ñ +
ô +
ñ (
ô (
Ð#ð ØØ#ðð ð ð
 �T”ZÐÐØ”z $Ô'ˆHàØ œØÝ" 8¨Y¸Ñ=Ô=ð	ð ð õ $ DÑ)Ô)Ð)r   ÚrbNc                ó(  — |                       |¦  «        }d|v r|                      |¦  «        rt          ‚|| j        v rt	          |¦  «        ‚|}t          |¦  «        dk    rL|                      |¦  «        }|                      |¦  «        rt          |¦  «        ‚t          |¦  «        dk    °L|dv rY|| j        v rA| j        |         }|dk    r| 	                    dd¦  «         n| 	                    d¦  «         |S t          |¦  «        ‚|dv rc|dk    r|                      |¦  «        rt          ‚t          | ||                     d	¦  «        ¦  «        }	| j        s|	                     ¦   «          |	S | j        j        }
t#          d
|
› d|›�¦  «        ‚)NÚxr&   )rg   Úabzr+brj   r   é   >   rQ   rP   rP   rS   zunsupported file mode for z: )r   ÚexistsrC   r6   ÚIsADirectoryErrorr2   rD   rF   r   Úseekr7   Ú
MemoryFileÚgetÚ_intransÚcommitÚ	__class__Ú__name__Ú
ValueError)r9   r   rR   Ú
block_sizeÚ
autocommitÚcache_optionsr;   Úparentr,   Úmr"   s              r   Ú_openzMemoryFileSystem._open«   s�  € ð ×#Ò# DÑ)Ô)ˆØ�$ˆ;ˆ;˜4Ÿ;š; tÑ,Ô,ˆ;Ý!Ð!Ø�4Ô#Ð#Ð#Ý# DÑ)Ô)Ð)ØˆÝ�&‰kŒk˜AŠoˆoØ—\’\ &Ñ)Ô)ˆFØ�{Š{˜6Ñ"Ô"ð .Ý% fÑ-Ô-Ð-õ �&‰kŒk˜AŠoˆoð Ð&Ð&Ð&Ø�t”zÐ!Ð!Ø”J˜tÔ$�Ø˜4’<�<à—F’F˜1˜a‘L”L�L�Lð —F’F˜1‘I”I�IØ�å'¨Ñ-Ô-Ð-Ø�\Ð!Ð!Ø�tŠ|ˆ| §¢¨DÑ 1Ô 1ˆ|Ý%Ð%Ý˜4  v§z¢z°&Ñ'9Ô'9Ñ:Ô:ˆAØ”=ð Ø—’‘
”
�
ØˆHà”>Ô*ˆDÝÐJ¸$ÐJÐJÀ$ÐJÐJÑKÔKÐKr   c                ó†  — |                       |¦  «        }|                       |¦  «        }|                      |¦  «        r8t          | || j        |                              ¦   «         ¦  «        | j        |<   d S |                      |¦  «        r'|| j        vr| j                             |¦  «         d S d S t          |¦  «        ‚©N)	r   rF   ro   r   ÚgetvalueÚisdirr6   r3   r7   )r9   Úpath1Úpath2r;   s       r   Úcp_filezMemoryFileSystem.cp_fileÕ   sË   € Ø×$Ò$ UÑ+Ô+ˆØ×$Ò$ UÑ+Ô+ˆØ�;Š;�uÑÔð 	+Ý *Ø�e˜TœZ¨Ô.×7Ò7Ñ9Ô9ñ!ô !ˆDŒJ�uÑÐÐð �ZŠZ˜ÑÔð 	+Ø˜DÔ,Ð,Ð,ØÔ ×'Ò'¨Ñ.Ô.Ð.Ð.Ð.ð -Ð,õ $ EÑ*Ô*Ð*r   c                ó  — t                                d|¦  «         |                      |¦  «        }	 t          | j        |                              ¦   «         ||…         ¦  «        S # t          $ r}t          |¦  «        |‚d }~ww xY w)Nzcat: %s)r`   ra   r   Úbytesr   Ú	getbufferÚKeyErrorr7   )r9   r   ÚstartÚendr;   Úes         r   Úcat_filezMemoryFileSystem.cat_fileâ   s‡   € Ý�Š�Y Ñ%Ô%Ð%Ø×#Ò# DÑ)Ô)ˆð	1Ý˜œ DÔ)×3Ò3Ñ5Ô5°e¸C°iÔ@ÑAÔAÐAøÝð 	1ð 	1ð 	1Ý# DÑ)Ô)¨qÐ0øøøøð	1øøøs   ²3A& Á&
BÁ0B Â Bc                ó†   — |                       |¦  «        }	 | j        |= d S # t          $ r}t          |¦  «        |‚d }~ww xY wr}   )r   r   r†   r7   ©r9   r   r‰   s      r   Ú_rmzMemoryFileSystem._rmê   sY   € Ø×#Ò# DÑ)Ô)ˆð	1Ø”
˜4Ð Ð Ð øÝð 	1ð 	1ð 	1Ý# DÑ)Ô)¨qÐ0øøøøð	1øøøs   —! ¡
A «;»A c                ó–   — |                       |¦  «        }	 | j        |         j        S # t          $ r}t	          |¦  «        |‚d }~ww xY wr}   )r   r   Úmodifiedr†   r7   rŒ   s      r   r�   zMemoryFileSystem.modifiedñ   sY   € Ø×#Ò# DÑ)Ô)ˆð	1Ø”:˜dÔ#Ô,Ð,øÝð 	1ð 	1ð 	1Ý# DÑ)Ô)¨qÐ0øøøøð	1øøøó   —) ©
A³AÁAc                ó–   — |                       |¦  «        }	 | j        |         j        S # t          $ r}t	          |¦  «        |‚d }~ww xY wr}   )r   r   r%   r†   r7   rŒ   s      r   r%   zMemoryFileSystem.createdø   sY   € Ø×#Ò# DÑ)Ô)ˆð	1Ø”:˜dÔ#Ô+Ð+øÝð 	1ð 	1ð 	1Ý# DÑ)Ô)¨qÐ0øøøøð	1øøør�   c                ó>   — |                       |¦  «        }|| j        v S r}   )r   r   rZ   s     r   rF   zMemoryFileSystem.isfileÿ   s"   € Ø×#Ò# DÑ)Ô)ˆØ�t”zÐ!Ð!r   c                óz  ‡ — t          |t          ¦  «        r‰                      |¦  «        }nˆ fd„|D ¦   «         }‰                      |||¬¦  «        }t	          |¦  «        D ]X}‰                      |¦  «        r‰                      |¦  «         Œ-‰                      |¦  «        sŒC‰                      |¦  «         ŒYd S )Nc                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r*   )r   )r+   r^   r9   s     €r   r-   z'MemoryFileSystem.rm.<locals>.<listcomp>  s'   ø€ Ð:Ð:Ð:°�D×(Ò(¨Ñ+Ô+Ð:Ð:Ð:r   )Ú	recursiveÚmaxdepth)	r   Ústrr   Úexpand_pathÚreversedrF   Úrm_filerl   r[   )r9   r   r•   r–   r<   r^   s   `     r   ÚrmzMemoryFileSystem.rm  sÇ   ø€ Ý�d�CÑ Ô ð 	;Ø×'Ò'¨Ñ-Ô-ˆDˆDà:Ð:Ð:Ð:°TÐ:Ñ:Ô:ˆDØ× Ò  °ÀXÐ ÑNÔNˆÝ˜%‘”ð 
	ð 
	ˆAØ�{Š{˜1‰~Œ~ð 	Ø—’˜Q‘”��ð
 —[’[ ‘^”^ð Øà—
’
˜1‘”��ð
	ð 
	r   )T)F)rM   )rg   NTN)NN)FN)rt   Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r6   ÚprotocolÚroot_markerÚclassmethodr   rA   rH   rL   rV   r[   rf   r{   r‚   rŠ   r�   r�   r%   rF   r›   r*   r   r   r   r      sf  € € € € € € ðð ð ')€EÐ(Ð(Ð(Ñ(Ø�$€KØ€HØ€Kàð*ð *ñ „[ð*ð>0ð >0ð >0ð >0ð@*ð *ð *ð *ðð ð ð ð/ð /ð /ð /ð*ð *ð *ð*ð *ð *ð2 ØØØð(Lð (Lð (Lð (LðT+ð +ð +ð1ð 1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð"ð "ð "ðð ð ð ð ð r   r   c                  óR   ‡ — e Zd ZdZd	ˆ fd„	Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
ˆ xZS )
ro   zÐA BytesIO which can't close and works as a context manager

    Can initialise with data. Each path should only be active once at any moment.

    No need to provide fs, path if auto-committing (default)
    Nc                ó^  •— t                                d|¦  «         || _        || _        t	          j        t          j        ¬¦  «        | _        t	          j        t          j        ¬¦  «        | _	        |r8t          ¦   «                              |¦  «         |                      d¦  «         d S d S )Nzopen file %s©Útzr   )r`   ra   Úfsr   r   Únowr   Úutcr%   r�   ÚsuperÚ__init__rn   )r9   r§   r   rS   rs   s       €r   r«   zMemoryFile.__init__  sŽ   ø€ Ý�Š�^ TÑ*Ô*Ð*ØˆŒØˆŒ	Ý”|¥x¤|Ð4Ñ4Ô4ˆŒÝ œ­¬Ð5Ñ5Ô5ˆŒØð 	Ý‰GŒG×Ò˜TÑ"Ô"Ð"Ø�IŠI�a‰LŒLˆLˆLˆLð	ð 	r   c                ó4   — |                       ¦   «         j        S r}   )r…   Únbytes©r9   s    r   r#   zMemoryFile.size(  s   € à�~Š~ÑÔÔ&Ð&r   c                ó   — | S r}   r*   r®   s    r   Ú	__enter__zMemoryFile.__enter__,  s   € Øˆr   c                ó   — d S r}   r*   r®   s    r   ÚclosezMemoryFile.close/  ó   € Øˆr   c                ó   — d S r}   r*   r®   s    r   ÚdiscardzMemoryFile.discard2  r³   r   c                óv   — | | j         j        | j        <   t          j        t
          j        ¬¦  «        | _        d S )Nr¥   )r§   r   r   r   r¨   r   r©   r�   r®   s    r   rr   zMemoryFile.commit5  s,   € Ø#'ˆŒŒ�d”iÑ Ý œ­¬Ð5Ñ5Ô5ˆŒˆˆr   )NNN)rt   rœ   r�   rž   r«   Úpropertyr#   r°   r²   rµ   rr   Ú__classcell__)rs   s   @r   ro   ro     sž   ø€ € € € € ðð ðð ð ð ð ð ð ð'ð 'ñ „Xð'ðð ð ðð ð ðð ð ð6ð 6ð 6ð 6ð 6ð 6ð 6r   ro   )Ú
__future__r   Úloggingr   r   Úerrnor   Úior   Úpathlibr   r	   Útypingr
   r   Úfsspecr   Úfsspec.implementations.localr   Úfsspec.utilsr   Ú	getLoggerr`   r   ro   r*   r   r   ú<module>rÃ      s=  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à %Ð %Ð %Ð %Ð %Ð %Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à	ˆÔ	Ð,Ñ	-Ô	-€ðBð Bð Bð Bð BÐ)ñ Bô Bð BðJ!6ð !6ð !6ð !6ð !6�ñ !6ô !6ð !6ð !6ð !6r   