Ë
    #täi¢  ã                   ó”   — d dl Z d dlZd dlZd dlZd dlZ G d„ dej
                  «      Z G d„ dej                  j                  «      Z	y)é    Nc                   ó\   ‡ — e Zd ZdZdZdˆ fd„	Zdd„Zdd„Zd„ Zdd„Z	dd„Z
d	„ Zdd
„Zˆ xZS )ÚJupyterFileSystemz?View of the files as seen by a Jupyter server (notebook or lab))ÚjupyterÚjlabc                 óh  •— d|v r1|€	 t        j                  d|«      d   }|j	                  dd«      d   }|j                  d«      dz   | _        t        j                  «       | _	        |rd	|› �| j                  j                  d
<   t        ‰| �0  di |¤Ž y# t        $ r}t        d«      |‚d}~ww xY w)aD  

        Parameters
        ----------
        url : str
            Base URL of the server, like "http://127.0.0.1:8888". May include
            token in the string, which is given by the process when starting up
        tok : str
            If the token is obtained separately, can be given here
        kwargs
        Ú?Nztoken=([a-z0-9]+)r   zCould not determine tokené   Ú/z/api/contentsztoken ÚAuthorization© )ÚreÚfindallÚ
IndexErrorÚ
ValueErrorÚsplitÚrstripÚurlÚrequestsÚSessionÚsessionÚheadersÚsuperÚ__init__)Úselfr   ÚtokÚkwargsÚeÚ	__class__s        €úm/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/fsspec/implementations/jupyter.pyr   zJupyterFileSystem.__init__   s·   ø€ ð �#‰:Øˆ{ðIÜŸ*™*Ð%8¸#Ó>¸qÑA�Cð —)‘)˜C Ó# AÑ&ˆCØ—:‘:˜c“? _Ñ4ˆŒÜ×'Ñ'Ó)ˆŒÙØ6<¸S¸E°NˆD�L‰L× Ñ  Ñ1ä‰ÑÑ"˜6Ó"øô "ò IÜ$Ð%@ÓAÀqÐHûðIús   ‰B Â	B1Â B,Â,B1c                 óº  — | j                  |«      }| j                  j                  | j                  › d|› �«      }|j                  dk(  rt        |«      ‚|j                  «        |j                  «       }|d   dk(  r|d   }n|g}|D ]5  }|j                  d«      |d<   |j                  d«       |d   dk(  sŒ1d	|d<   Œ7 |r|S |D �cg c]  }|d   ‘Œ	 c}S c c}w )
Nr
   é”  ÚtypeÚ	directoryÚcontentÚpathÚnameÚnotebookÚfile)	Ú_strip_protocolr   Úgetr   Ústatus_codeÚFileNotFoundErrorÚraise_for_statusÚjsonÚpop)r   r%   Údetailr   ÚrÚoutÚos          r   ÚlszJupyterFileSystem.ls)   sá   € Ø×#Ñ# DÓ)ˆØ�L‰L×Ñ §¡˜z¨¨4¨&Ð1Ó2ˆØ�=‰=˜CÒÜ# DÓ)Ð)Ø	×ÑÔØ�f‰f‹hˆàˆv‰;˜+Ò%Ø�i‘.‰Cà�%ˆCÛˆAØŸ™˜f›ˆAˆf‰IØ�E‰E�)ÔØ�‰y˜JÓ&Ø"��&’	ð	 ñ
 ØˆJÙ#&Ó'¡3˜a��&“	 3Ñ'Ð'ùÒ's   Ã	Cc                 ó^  — | j                  |«      }| j                  j                  | j                  › d|› �«      }|j                  dk(  rt        |«      ‚|j                  «        |j                  «       }|d   dk(  r|d   j                  «       }nt        j                  |d   «      }||| S )Nr
   r!   ÚformatÚtextr$   )r)   r   r*   r   r+   r,   r-   r.   ÚencodeÚbase64Ú	b64decode)r   r%   ÚstartÚendr   r1   r2   Úbs           r   Úcat_filezJupyterFileSystem.cat_file>   s¡   € Ø×#Ñ# DÓ)ˆØ�L‰L×Ñ §¡˜z¨¨4¨&Ð1Ó2ˆØ�=‰=˜CÒÜ# DÓ)Ð)Ø	×ÑÔØ�f‰f‹hˆØˆx‰=˜FÒ"à�I‘×%Ñ%Ó'‰Aä× Ñ   Y¡Ó0ˆAØ��sˆ|Ðó    c                 ó
  — | j                  |«      }|j                  dd«      d   |t        |«      t        j                  |«      j                  «       dddœ}| j                  j                  | j                  › d|› �|¬«       y )Nr
   r	   éÿÿÿÿr9   r(   )r&   r%   Úsizer$   r6   r"   ©r.   )	r)   ÚrsplitÚlenr9   Ú	b64encodeÚdecoder   Úputr   )r   r%   ÚvalueÚ_r.   s        r   Ú	pipe_filezJupyterFileSystem.pipe_fileL   s{   € Ø×#Ñ# DÓ)ˆà—K‘K  QÓ'¨Ñ+ØÜ˜“JÜ×'Ñ'¨Ó.×5Ñ5Ó7ØØñ
ˆð 	�‰×Ñ˜DŸH™H˜: Q t fÐ-°DÐÕ9r?   c                 ó
  — | j                  |«      }|r)d|v r%| j                  |j                  dd«      d   d«       |j                  dd«      d   |d d ddœ}| j                  j	                  | j
                  › d|› �|¬«       y )	Nr
   r	   r   TrA   r#   )r&   r%   rB   r$   r"   rC   )r)   ÚmkdirrD   r   rH   r   )r   r%   Úcreate_parentsr   r.   s        r   rM   zJupyterFileSystem.mkdirX   s‡   € Ø×#Ñ# DÓ)ˆÙ˜c T™kØ�J‰J�t—{‘{ 3¨Ó*¨1Ñ-¨tÔ4à—K‘K  QÓ'¨Ñ+ØØØØñ
ˆð 	�‰×Ñ˜DŸH™H˜: Q t fÐ-°DÐÕ9r?   c                 ól   — ||k(  ry | j                   j                  | j                  › d|› �d|i¬«       y )Nr
   r%   rC   )r   Úpatchr   )r   Úpath1Úpath2Ú	recursiveÚmaxdepthr   s         r   ÚmvzJupyterFileSystem.mve   s6   € Ø�EŠ>ØØ�‰×Ñ˜dŸh™h˜Z q¨¨Ð0¸À°ÐÕGr?   c                 óz   — | j                  |«      }| j                  j                  | j                  › d|› �«       y )Nr
   )r)   r   Údeleter   )r   r%   s     r   Ú_rmzJupyterFileSystem._rmj   s3   € Ø×#Ñ# DÓ)ˆØ�‰×Ñ˜tŸx™x˜j¨¨$¨Ð0Õ1r?   c                 ó–   — | j                  |«      }|dk(  r&| j                  |«      }t        j                  |«      S t	        | |d¬«      S )NÚrbÚwb)Úmode)r)   r>   ÚioÚBytesIOÚSimpleFileWriter)r   r%   r\   r   Údatas        r   Ú_openzJupyterFileSystem._openn   sE   € Ø×#Ñ# DÓ)ˆØ�4Š<Ø—=‘= Ó&ˆDÜ—:‘:˜dÓ#Ð#ä# D¨$°TÔ:Ð:r?   )N)T)NN)FN)rZ   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úprotocolr   r4   r>   rK   rM   rU   rX   ra   Ú__classcell__)r   s   @r   r   r   
   s4   ø„ ÙIà"€Hõ#ó4(ó*ò
:ó:óHò
2÷;r?   r   c                   ó   — e Zd Zdd„Zy)r_   c                 óÄ   — |du ry| j                   j                  d«       | j                   j                  «       }| j                  j	                  | j
                  |«       y)zWNever uploads a chunk until file is done

        Not suitable for large files
        Fr   N)ÚbufferÚseekÚreadÚfsrK   r%   )r   Úfinalr`   s      r   Ú_upload_chunkzSimpleFileWriter._upload_chunkx   sJ   € ð
 �E‰>ØØ�‰×Ñ˜ÔØ�{‰{×ÑÓ!ˆØ�‰×Ñ˜$Ÿ)™) TÕ*r?   N)F)rb   rc   rd   ro   r   r?   r   r_   r_   w   s   „ ô	+r?   r_   )
r9   r]   r   r   ÚfsspecÚAbstractFileSystemr   ÚspecÚAbstractBufferedFiler_   r   r?   r   Ú<module>rt      s?   ðÛ Û 	Û 	ã ã ôj;˜×1Ñ1ô j;ôZ
+�v—{‘{×7Ñ7õ 
+r?   