o
    it                     @   s   d Z ddl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 G d	d
 d
e	eeZde e
efde  efgZdS )zPTornado handlers for the tree view.

This is a fork from jupyter/notebook#5.7.x
    N)webgen)JupyterHandler)ExtensionHandlerMixinExtensionHandlerJinjaMixin)
path_regex)url_path_join
url_escapeensure_async)nbclassic_pathc                   @   s6   e Zd ZdZdd Zdd Zejej	d
ddZ
d	S )TreeHandlerz-Render the tree view, listing notebooks, etc.c              
   C   sn   t | jddfg}|d}tt|D ] }|| r4t | jdtt |d |d   }|||| f q|S )Ntree /   )r   base_urlsplitrangelenr	   append)selfpathbreadcrumbspartsilink r   R/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/nbclassic/tree/handlers.pygenerate_breadcrumbs   s   
z TreeHandler.generate_breadcrumbsc                 C   sN   | d}t|dkrtt|d D ]}|d qt| }|r%|d S dS )Nr         r   Home)r   r   r   popr   )r   r   compsr   
page_titler   r   r   generate_page_title%   s   
zTreeHandler.generate_page_titler   c                 c   s&   | d}| j}d}t|j|dV }|st||V }|r^t||V }|r8|js8| jd t	
d| |}| |}| | jd|||| jd | jd | jd	dd
 d S |rt|j|ddV }|d dkrrdnd}	t| j|	t|}
| jd| jj|
 | |
 d S t	
d)Nr   F)r   z1Refusing to serve hidden directory, via 404 Errori  z	tree.htmlterminals_availableserver_root_dirshutdown_button)r$   notebook_pathr   r&   server_rootr(   )contenttypenotebook	notebooksfileszRedirecting %s to %s)stripcontents_managerr
   
dir_existsfile_exists	is_hiddenallow_hiddenloginfor   	HTTPErrorr   r%   writerender_templatesettingsgetr   r   r	   debugrequestr   redirect)r   r   cmr3   r2   r4   r   r$   modelserviceurlr   r   r   r<   0   s>   






zTreeHandler.getN)r   )__name__
__module____qualname____doc__r   r%   r   authenticatedr   	coroutiner<   r   r   r   r   r      s    r   z	{}/tree{}z%s/tree)rG   retornador   r   jupyter_server.base.handlersr    jupyter_server.extension.handlerr   r   r   jupyter_server.utilsr   r	   r
   	nbclassicr   r   formatdefault_handlersr   r   r   r   <module>   s    F