
    çg                         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	dS )    Nc                   T     e Zd ZdZdZd fd	ZddZddZ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jlabNc                    d|v r]|?	 t          j        d|          d         }n"# t          $ r}t          d          |d}~ww xY w|                    dd          d         }|                    d          dz   | _        t          j                    | _	        |rd	| | j	        j
        d
<    t                      j        di | dS )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        Z/var/www/html/ai-engine/env/lib/python3.11/site-packages/fsspec/implementations/jupyter.pyr   zJupyterFileSystem.__init__   s     #::{I*%8#>>qACC! I I I$%@AAqHI))C##A&C::c??_4')) 	C4BSNNDL 1""6"""""s   % 
A?ATc                    |                      |          }| j                            | j         d|           }|j        dk    rt          |          S |                                 |                                }|d         dk    r	|d         }n|g}|D ]@}|                    d          |d<   |                    d           |d         dk    rd	|d<   A|r|S d
 |D             S )Nr
     type	directorycontentpathnamenotebookfilec                     g | ]
}|d          S )r&   r   ).0os     r   
<listcomp>z(JupyterFileSystem.ls.<locals>.<listcomp><   s    '''a&	'''    )	_strip_protocolr   getr   status_codeFileNotFoundErrorraise_for_statusjsonpop)r   r%   detailr   routr+   s          r   lszJupyterFileSystem.ls)   s   ##D))L1141122=C$T***	ffhhv;+%%i.CC%C 	# 	#AfAfIEE)yJ&&"&	 	J''3''''r-   c                    |                      |          }| j                            | j         d|           }|j        dk    rt          |          S |                                 |                                }|d         dk    r|d                                         }nt          j
        |d                   }|||         S )Nr
   r!   formattextr$   )r.   r   r/   r   r0   r1   r2   r3   encodebase64	b64decode)r   r%   startendr   r6   r7   bs           r   cat_filezJupyterFileSystem.cat_file>   s    ##D))L1141122=C$T***	ffhhx=F""I%%''AA Y00As|r-   c                 $   |                      |          }|                    dd          d         |t          |          t          j        |                                          ddd}| j                            | j         d| |           d S )Nr
   r	   r=   r(   )r&   r%   sizer$   r:   r"   r3   )	r.   rsplitlenr=   	b64encodedecoder   putr   )r   r%   value_r3   s        r   	pipe_filezJupyterFileSystem.pipe_fileL   s    ##D))KKQ''+JJ'..5577
 
 	DH--t--D99999r-   c                 ,   |                      |          }|r4d|v r0|                     |                    dd          d         d           |                    dd          d         |d d dd}| j                            | j         d| |           d S )	Nr
   r	   r   TrD   r#   )r&   r%   rE   r$   r"   rF   )r.   mkdirrG   r   rK   r   )r   r%   create_parentsr   r3   s        r   rP   zJupyterFileSystem.mkdirX   s    ##D)) 	5cTkkJJt{{3**1-t444KKQ''+
 
 	DH--t--D99999r-   c                 x    |                      |          }| j                            | j         d|            d S )Nr
   )r.   r   deleter   )r   r%   s     r   _rmzJupyterFileSystem._rme   sA    ##D))tx00$0011111r-   rbc                     |                      |          }|dk    r)|                     |          }t          j        |          S t	          | |d          S )NrU   wb)mode)r.   rB   ioBytesIOSimpleFileWriter)r   r%   rX   r   datas        r   _openzJupyterFileSystem._openi   sT    ##D))4<<==&&D:d####D$T::::r-   )N)T)NN)rU   )__name__
__module____qualname____doc__protocolr   r8   rB   rN   rP   rT   r]   __classcell__)r   s   @r   r   r   
   s        II"H# # # # # #4( ( ( (*   
: 
: 
:: : : :2 2 2; ; ; ; ; ; ; ;r-   r   c                       e Zd ZddZdS )r[   Fc                     |du rdS | j                             d           | j                                         }| j                            | j        |           dS )zWNever uploads a chunk until file is done

        Not suitable for large files
        Fr   N)bufferseekreadfsrN   r%   )r   finalr\   s      r   _upload_chunkzSimpleFileWriter._upload_chunks   s[    
 E>>5{!!$)T*****r-   N)F)r^   r_   r`   rk   r   r-   r   r[   r[   r   s(        	+ 	+ 	+ 	+ 	+ 	+r-   r[   )
r=   rY   r   r   fsspecAbstractFileSystemr   specAbstractBufferedFiler[   r   r-   r   <module>rp      s     				 				  e; e; e; e; e;1 e; e; e;P
+ 
+ 
+ 
+ 
+v{7 
+ 
+ 
+ 
+ 
+r-   