
    Mh5                    t   d Z ddlmZ ddlZddlZddlZddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ dd	lmZmZ dd
lmZ ddlmZmZ ddlmZ ddlmZmZmZ ddlm Z  ddl!m"Z"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-m.Z.m/Z/ ddl0m1Z1 ddl2m3Z3  ee4          j5        6                                Z7ej8        ej9        e:ej;        e:df         f         ej;        ej9        ej8        e:ej<        f         e1f         e:f         f         Z= e e                      Z>e3Z? G d deee          Z@ G d de@          ZA G d de@          ZB G d de@          ZC G d  d!e@          ZD G d" d#e@          ZE G d$ d%e@          ZF eGe          ZH G d& d'e)e           ZIeIjJ        xZKZLeMd(k    r eK             dS dS ))zJupyter notebook application.    )annotationsN)Path)ensure_async)base_aliases)jupyter_config_dir)JupyterHandler)ExtensionHandlerJinjaMixinExtensionHandlerMixin)flags)
url_escapeurl_is_absolute)url_path_join)get_app_dirget_user_settings_dirget_workspaces_dir)LabServerApp)	LabConfigget_page_configrecursive_update)
_camelCaseis_url)NotebookConfigShimMixin)web)BoolUnicodedefault)Config   )__version__.c                  2    e Zd ZdZedd            Zd	dZdS )
NotebookBaseHandlerzThe base notebook API handler.returnt.Anyc                8    | j                             dd          S )N
custom_cssT)settingsgetselfs    L/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/notebook/app.pyr%   zNotebookBaseHandler.custom_css5   s    }  t444    dict[str, t.Any]c           
        t                      }| j        }| j                            dd          }| j                            di           }i |t
          | j        | j                            dd          | j        d         t          | j        d| j                  t          | j        d          |j	        d}| j                            d	d
          }|
                    t          j        d          }t          j                            t          |                                                    }	 | j        j        |k    r1dt          j                            | j        j        |          z   |d<   nd|d<   n# t(          $ r d|d<   Y nw xY w| j                            dd          }| j                            dd          }t+          |          s/|                    | j                  st          | j        |          }|                    d|           |                    d|           |                    dt/                                 |                                D ]"}	t3          ||	          |t5          |	          <   #|                                D ]^}	|	                    d          st5          d|	z             }
t3          ||	          }t9          |          st          ||          }|||
<   _|j        |j        z   }t?          |tA          || j!                             | j                            dd          }|r || |          }|S )zGet the page config.base_url/page_config_dataterminals_availableFtokenstatic)
appVersionbaseUrlterminalsAvailabler2   fullStaticUrlfrontendUrlexposeAppInBrowserserver_root_dir preferredPathmathjax_configzTeX-AMS_HTML-full,Safemathjax_urlz?https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.jsmathjaxConfigfullMathjaxUrljupyterConfigDir_urlfull_)loggerpage_config_hookN)"r   extensionappr&   r'   
setdefaultversionr.   ujoinnameexpose_app_in_browserreplaceosseppathnormpathr   
expanduser	serverapppreferred_dirrelpath	Exceptionr   
startswithr   trait_namesgetattrr   endswithr   extra_labextensions_pathlabextensions_pathr   r   log)r)   configappr.   r0   page_configserver_rootr=   r>   rJ   	full_namefull_urlr[   rE   s                 r*   r   z#NotebookBaseHandler.get_page_config9   sz   "&"3=$$Z55=334FKK	
	
!}"&-"3"34I5"Q"Q]7+"4=(DIFF 44"%";	
 	
 	
 m''(92>>!))"&#66g&&tK'8'8'C'C'E'EFF		/~+{::/2RW__N0+6 6 0O,, 03O, 	/ 	/ 	/+.K(((	/ **+;=UVVm''M
 
 {++ 	<K4J4J4=4Y4Y 	<{;;K???/===13E3G3GHHH &&(( 	? 	?D,3C,>,>K
4(()) &&(( 	. 	.D==(( "7T>22IsD))H(## 5 844%-K	"" 9C<RR"x  	
 	
 	
  =,,-?FF 	>**4==Ks   3AE: :FFNr"   r#   )r"   r,   )__name__
__module____qualname____doc__propertyr%   r    r+   r*   r!   r!   2   sR        ((5 5 5 X5I I I I I Ir+   r!   c                  6    e Zd ZdZej        d	d
d            ZdS )TreeHandlerzA tree page handler.r;   rO   strr"   Nonec                  K   |                     d          }| j        }t          |                    |                     d{V rt          |                    |                     d{V r5|j        s.| j                            d           t          j	        d          | 
                                }||d<   |                     d|          }|                     |          S t          |                    |                     d{V rt          |                    |d	
                     d{V }|d         dk    r$t          | j        dt#          |                    }n#t          | j        dt#          |                    }| j                            d| j        j        |           |                     |           dS t          j	        d          )z
        Display appropriate page for given path.

        - A directory listing is shown if path is a directory
        - Redirected to notebook page if path is a notebook
        - Render the raw file if path is any other file
        r/   rO   Nz1Refusing to serve hidden directory, via 404 Errori  treePathz	tree.htmlr_   F)contenttypenotebook	notebooksfileszRedirecting %s to %s)stripcontents_managerr   
dir_exists	is_hiddenallow_hiddenr\   infor   	HTTPErrorr   render_templatewritefile_existsr'   rI   r.   r   debugrequestrO   redirect)r)   rO   cmr_   tplmodelurls          r*   r'   zTreeHandler.get   s      zz#"bmmm6677777777 
	#!",,t"4"455555555 )bo )QRRRmC((( ..00K&*K
#&&{&LLC::c??"bnnT2233333333 
	&rvvdEv'B'BCCCCCCCCEV}
**DM;
48H8HII DM7Jt4D4DEEHNN14<3DcJJJMM#4mC   r+   Nr;   )rO   rl   r"   rm   rd   re   rf   rg   r   authenticatedr'   ri   r+   r*   rk   rk      sA        !! !! !! !! !! !! !!r+   rk   c                  6    e Zd ZdZej        dd	d            ZdS )
ConsoleHandlerzA console page handler.NrO   
str | Noner"   r#   c                ~    |                      d|                                           }|                     |          S )zGet the console page.zconsoles.htmlrq   r~   r   r   r)   rO   r   s      r*   r'   zConsoleHandler.get   s8     ""?@T@T@V@V"WWzz#r+   NrO   r   r"   r#   r   ri   r+   r*   r   r      sA        !!      r+   r   c                  6    e Zd ZdZej        dd	d            ZdS )
TerminalHandlerzA terminal page handler.NrO   r   r"   r#   c                ~    |                      d|                                           }|                     |          S )zGet the terminal page.zterminals.htmlrq   r   r   s      r*   r'   zTerminalHandler.get   s9     ""#3AUAUAWAW"XXzz#r+   r   r   r   ri   r+   r*   r   r      sA        ""      r+   r   c                  6    e Zd ZdZej        dd	d            ZdS )
FileHandlerzA file page handler.NrO   r   r"   r#   c                ~    |                      d|                                           }|                     |          S )zGet the file page.z	edit.htmlrq   r   r   s      r*   r'   zFileHandler.get   s8     "";D<P<P<R<R"SSzz#r+   r   r   r   ri   r+   r*   r   r      sA              r+   r   c                  6    e Zd ZdZej        d	d
d            ZdS )NotebookHandlerzA notebook page handler.r;   rO   rl   r"   r#   c                  K   |                     d          }| j        }t          |                    |                     d{V r`t	          | j        dt          |                    }| j                            d| j	        j
        |           |                     |           dS |                     d|                                           }|                     |          S )z4Get the notebook page. Redirect if it's a directory.r/   ro   Ntreez.Redirecting %s to %s since path is a directoryznotebooks.htmlrq   )rw   rx   r   ry   rI   r.   r   r\   r   r   rO   r   r~   r   r   )r)   rO   r   r   r   s        r*   r'   zNotebookHandler.get   s       zz#"bmmm6677777777 	vz$/?/?@@CHNNKT\M^`cdddMM#4""#3AUAUAWAW"XXzz#r+   Nr   )rO   rl   r"   r#   r   ri   r+   r*   r   r      sA        ""      r+   r   c                  4    e Zd ZdZej        dd            ZdS )CustomCssHandlerzA custom CSS handler.r"   r#   c                   |                      dd           |                                 }|d          d}t          |                                          s<t	          j        d|d                   }||                                d         }| d	}t          |                                          5 }|                     |	                                          cddd           S # 1 swxY w Y   dS )
zGet the custom css file.zContent-Typeztext/cssrA   /custom/custom.cssz^(.*?)static	staticDirNr   zcustom/custom.css)

set_headerr   r   is_filerematchgroupsopenr   read)r)   r_   custom_css_filestatic_path_root
custom_dircss_fs         r*   r'   zCustomCssHandler.get   s-    	
333**,,();<PPPO$$,,.. 	C!xK8PQQ+-4466q9
%/"B"B"B/""'')) 	,U::ejjll++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   4'C((C,/C,Nrc   r   ri   r+   r*   r   r      s<        , , , , , ,r+   r   c                  D    e Zd ZU dZdZdZdZeZ eed          Z	dZ
 edd	d
          ZdZd	ZeZi Zded<    edd	d          Z ed	d	d          ZeZded<   d dd	iidfed<   d dd	iidfed<    ed          d3d            Z ed          d3d            Z ed          d3d             Z ed!          d3d"            Z ed#          d3d$            Z ed%          d3d&            Z ed'          d3d(            Zd4 fd*Zd5d-Zd4 fd.Zd6d7 fd2Z  xZ!S )8JupyterNotebookAppz"The notebook server extension app.rt   zJupyter NotebookzMJupyter Notebook - A web-based notebook environment for interactive computingzThe version of the application.)helpr/   z/treeTz'The default URL to redirect to from `/`)r]   r   r,   subcommandsFzJWhether to expose the global app instance to browser via window.jupyterappzeWhether custom CSS is loaded on the page.
        Defaults to True and custom CSS is loaded.
        Flagsr   rK   z@Expose the global app instance to browser via window.jupyterapp.zexpose-app-in-browserr%   z7Load custom CSS in template html files. Default is Truez
custom-css
static_dirr"   rl   c                0    t          t          dz            S )Nr3   rl   HEREr(   s    r*   _default_static_dirz&JupyterNotebookApp._default_static_dir  s    4(?###r+   templates_dirc                0    t          t          dz            S )N	templatesr   r(   s    r*   _default_templates_dirz)JupyterNotebookApp._default_templates_dir!  s    4+%&&&r+   app_settings_dirc                0    t          t          dz            S )Nr&   rl   app_dirr(   s    r*   _default_app_settings_dirz,JupyterNotebookApp._default_app_settings_dir%  s    7Z'(((r+   schemas_dirc                0    t          t          dz            S )Nschemasr   r(   s    r*   _default_schemas_dirz'JupyterNotebookApp._default_schemas_dir)  s    7Y&'''r+   
themes_dirc                0    t          t          dz            S )Nthemesr   r(   s    r*   _default_themes_dirz&JupyterNotebookApp._default_themes_dir-  s    7X%&&&r+   user_settings_dirc                N    t          j        t          t                                S r   )tcastrl   r   r(   s    r*   _default_user_settings_dirz-JupyterNotebookApp._default_user_settings_dir1  s    vc022333r+   workspaces_dirc                N    t          j        t          t                                S r   )r   r   rl   r   r(   s    r*   _default_workspaces_dirz*JupyterNotebookApp._default_workspaces_dir5  s    vc-//000r+   rm   c                    t          t          |                                            | j        j                            | j                   d S )N)r%   )superr   _prepare_templates
jinja2_envglobalsupdater%   )r)   	__class__s    r*   r   z%JupyterNotebookApp._prepare_templates9  sC    lD!!44666&&$/&BBBBBr+   	extensionboolc                    | j         dS 	 | j         j        j        |         j        du }n# t          t
          t          f$ r d}Y nw xY w|S )z%Check if server extension is enabled.NFT)rR   extension_manager
extensionsenabledAttributeErrorKeyError	TypeError)r)   r   extension_enableds      r*   server_extension_is_enabledz.JupyterNotebookApp.server_extension_is_enabled=  sk    >!5	&0;IFNRVV  )4 	& 	& 	& %	&  s   * AAc                V   | j         J | j         j        j                            di           }|                     d          }||d<   d| j         j        v rk| j         j        }|d         }||d<   |d         |d<   |d	         |d
<   t          |d          |d<   t          | j         d          r| j         j        |d<   d|d<   | j	        
                    dt          f           | j	        
                    dt          f           | j	        
                    dt          f           | j	        
                    dt          f           | j	        
                    dt          f           | j	        
                    dt           f           t#                                                       dS )zInitialize handlers.Nr0   	nbclassicnbclassic_enabled
hub_prefix	hubPrefixhub_hosthubHostuserhubUserzuser-redirectshareUrlserver_namehubServerNamer;   r2   z	/tree(.*)z/notebooks(.*)z	/edit(.*)z/consoles/(.*)z/terminals/(.*)r   )rR   web_appr&   rG   r   tornado_settingsrI   hasattrr   handlersappendrk   r   r   r   r   r   r   initialize_handlers)r)   r_   r   r   r   r   s        r*   r   z&JupyterNotebookApp.initialize_handlersI  s   ~)))n,5@@ASUWXX <<[II+<'( 4>:::#~>),7J'1K$%5j%AK	"%5f%=K	"&+J&H&HK
#t~}55 J/3~/IO,
 $&K k;7888.@AAAk;7888.?@@@/ABBB24DEFFF##%%%%%r+   Nargvlist[str] | Nonec                H    t                                                       dS )zMSubclass because the ExtensionApp.initialize() method does not take argumentsN)r   
initialize)r)   r   r   s     r*   r   zJupyterNotebookApp.initializei  s    r+   )r"   rl   )r"   rm   )r   rl   r"   r   r   )r   r   r"   rm   )"rd   re   rf   rg   rJ   app_namedescriptionrH   r   app_versionextension_urldefault_urlfile_url_prefixload_other_extensionsr   r   __annotations__r   rK   r%   r   r   r   r   r   r   r   r   r   r   r   r   r   __classcell__)r   s   @r*   r   r      s        ,,D!HaKG''(IJJJKM''$5^___KO G$&K&&&& DY     J E	 7>?J&E
!" 
d34AE,
 W\$ $ $ $ W_' ' ' ' W  ) ) ) ! ) W]( ( ( ( W\' ' ' ' W !!4 4 4 "!4 W1 1 1 1C C C C C C
! 
! 
! 
!& & & & & &@          r+   r   __main__)Nrg   
__future__r   rM   r   typingr   pathlibr   jupyter_client.utilsr   jupyter_core.applicationr   jupyter_core.pathsr   jupyter_server.base.handlersr    jupyter_server.extension.handlerr	   r
   jupyter_server.serverappr   jupyter_server.utilsr   r   r   rI   jupyterlab.commandsr   r   r   jupyterlab_serverr   jupyterlab_server.configr   r   r   jupyterlab_server.handlersr   r   notebook_shim.shimr   tornador   	traitletsr   r   r   traitlets.config.loaderr   _versionr   __file__parentresolver   DictUnionrl   TupleAnyr   r   rH   r!   rk   r   r   r   r   r   dictaliasesr   launch_instancemainlaunch_new_instancerd   ri   r+   r*   <module>r!     s-   # # " " " " " " 				 				           - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7        + * * * * * < < < < < < < < 7 7 7 7 7 7         
 + * * * * *         
 : 9 9 9 9 9 9 9 6 6 6 6 6 6       , , , , , , , , , , * * * * * * ! ! ! ! ! !tH~~$$&&	qwsAGCH--.sAEz@RTZ@Z8[]`8`0aab
${{}}



P P P P P46K^ P P Pf%! %! %! %! %!% %! %! %!P    (       )       %       )   $, , , , ,* , , ,* $|

v v v v v0, v v vr 0? ?zDFFFFF r+   