
    Mh0                     v    d dl Z d dlZd dlmZ d dlmZ d dlmZmZ  G d de          Z	 G d de          Z
dS )	    N)run_sync)web)AsyncFileContentsManagerFileContentsManagerc                   *     e Zd ZdZd fd	Zd Z xZS )LargeFileManagerzHandle large file upload. c                    |                     dd          }|"|                    d          }|dk    r|                     ||           d|vrt          j        dd          |d         d	k    r.t          j        dd
                    |d                             d|vr!|d         dk    rt          j        dd          |                     |          }|dk    r| j                            d|            n | j                            d| d|            	 |dk    r=t                      
                    ||d         |                     d                     n0|                     ||d         |                     d                     n[# t          j        $ r  t          $ r?}| j                            d||d           t          j        dd| d|           |d}~ww xY w|                      |d          }|dk    r|                     ||           |                     d|d           |S t                                          ||          S z9Save the file model and return the model with no content.chunkN/   )modelpathtype  zNo file type providedfilez7File type "{}" is not supported for large file transfercontent	directoryzNo file content providedzSaving last chunk of file zSaving chunk z	 of file formatzError while saving file: %s %sT)exc_infoi  z$Unexpected error while saving file:  F)r   )r   os_pathsave)actionr   )datagetstriprun_pre_save_hooksr   	HTTPErrorr   _get_os_pathlogdebugsuper
_save_file_save_large_file	Exceptionerrorrun_post_save_hooksemitr   selfr   r   r   r   e	__class__s         q/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jupyter_server/services/contents/largefilemanager.pyr   zLargeFileManager.save   s   		'4((::c??Dzz''e$'???U""mC)@AAAV}&&mMTTUZ[aUbcc   %%%-;*F*FmC)CDDD''--G{{EGEEFFFFHuHHwHHIII	cA::GG&&wi0@%))HBUBUVVVV))'53CUYYxEXEXYYY=    c c c?qSWXXXmC)ZPT)Z)ZWX)Z)Z[[abbc HHT5H11E {{((ug(FFFIIfd;;I<<<L77<<t,,,s   A3F G+,:G&&G+c                    |dvrt          j        dd          	 |dk    r|                    d          }n)|                    d          }t          j        |          }n.# t
          $ r!}t          j        dd| d|           |d	}~ww xY w|                     |          5  t          j        	                    |          rOt          j        
                    t          j                            |          t          j        |                    }t          |d
          5 }|                    |           d	d	d	           n# 1 swxY w Y   d	d	d	           d	S # 1 swxY w Y   d	S zSave content of a generic file.>   textbase64r   z:Must specify format of file contents as 'text' or 'base64'r4   utf8asciizEncoding error saving z: Nab)r   r"   encoder5   	b64decoder)   perm_to_403osr   islinkjoindirnamereadlinkopenwriter.   r   r   r   bcontent	b64_bytesr/   fs           r1   r(   z!LargeFileManager._save_large_file>   s   +++-L  	U">>&11#NN733	!+I66 	U 	U 	U-%Lg%L%L%L%LMMSTT	U g&& 	" 	"w~~g&& W',,rww'?'?WAUAUVVgt$$ "!!!" " " " " " " " " " " " " " "	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"sO   AA! !
B+BB$A?E#E9EE			EE		EE!$E!r	   __name__
__module____qualname____doc__r   r(   __classcell__r0   s   @r1   r   r      sS        ##,- ,- ,- ,- ,- ,-\" " " " " " "    r   c                   *     e Zd ZdZd fd	Zd Z xZS )AsyncLargeFileManagerz'Handle large file upload asynchronouslyr	   c                   K   |                     dd          }|4|                    d          }|dk    r|                     ||           d|vrt          j        dd          |d         d	k    r.t          j        dd
                    |d                             d|vr!|d         dk    rt          j        dd          |                     |          }|dk    r| j                            d|            n | j                            d| d|            	 |dk    rCt                      
                    ||d         |                     d                     d{V  n6|                     ||d         |                     d                     d{V  n[# t          j        $ r  t          $ r?}| j                            d||d           t          j        dd| d|           |d}~ww xY w|                      |d           d{V }|dk    r|                     ||           |                     d|d           |S t                                          ||           d{V S r   r   r-   s         r1   r   zAsyncLargeFileManager.saveX   s     		'4((::c??Dzz''e$'???U""mC)@AAAV}&&mMTTUZ[aUbcc   %%%-;*F*FmC)CDDD''--G{{EGEEFFFFHuHHwHHIII	cA::'',,WeI6F		RZH[H[\\\\\\\\\\//y9I599U]K^K^_________=    c c c?qSWXXXmC)ZPT)Z)ZWX)Z)Z[[abbc ((4(77777777E {{((ug(FFFIIfd;;I<<<LeT222222222s   !A?F! !G9::G44G9c                   K   |dvrt          j        dd          	 |dk    r|                    d          }n)|                    d          }t          j        |          }n.# t
          $ r!}t          j        dd| d|           |d	}~ww xY w|                     |          5  t          j        	                    |          rOt          j        
                    t          j                            |          t          j        |                    }t          |d
          5 }t          |j        |           d	{V  d	d	d	           n# 1 swxY w Y   d	d	d	           d	S # 1 swxY w Y   d	S r3   )r   r"   r9   r5   r:   r)   r;   r<   r   r=   r>   r?   r@   rA   r   rB   rC   s           r1   r(   z&AsyncLargeFileManager._save_large_file   s     +++-L  	U">>&11#NN733	!+I66 	U 	U 	U-%Lg%L%L%L%LMMSTT	U g&& 	2 	2w~~g&& W',,rww'?'?WAUAUVVgt$$ 2qw1111111112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2sO   AA# #
B-B		B&A?E%%EE%E	E%E	E%%E),E)rG   rH   rN   s   @r1   rQ   rQ   U   sS        11-3 -3 -3 -3 -3 -3^2 2 2 2 2 2 2rO   rQ   )r5   r<   anyio.to_threadr   tornador   ,jupyter_server.services.contents.filemanagerr   r   r   rQ    rO   r1   <module>rX      s     				 $ $ $ $ $ $             E" E" E" E" E"* E" E" E"PF2 F2 F2 F2 F24 F2 F2 F2 F2 F2rO   