B
    8dt                 @   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   sr   t | jddfg}|d}xPtt|D ]@}|| r*t | jdtt |d |d   }|||| f q*W |S )Ntree /   )r   base_urlsplitrangelenr	   append)selfpathbreadcrumbspartsilink r   d/work/yifan.wang/ringdown/master-ringdown-env/lib/python3.7/site-packages/nbclassic/tree/handlers.pygenerate_breadcrumbs   s    
z TreeHandler.generate_breadcrumbsc             C   sV   | d}t|dkr:x"tt|d D ]}|d q(W t| }|rN|d S dS d S )Nr         r   Z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 }|rt||V }|rn|jsn| jd t	
d| |}| |}| | jd|||| jd | jd | jd	dd
 nj|rt|j|ddV }|d dkrdnd}	t| j|	t|}
| jd| jj|
 | |
 n
t	
dd S )Nr   F)r   z1Refusing to serve hidden directory, via 404 Errori  z	tree.htmlterminals_availableZserver_root_dirshutdown_button)r#   Znotebook_pathr   r%   Zserver_rootr&   )contenttypenotebookZ	notebooksfileszRedirecting %s to %s)stripZcontents_managerr
   
dir_existsfile_exists	is_hiddenZallow_hiddenloginfor   	HTTPErrorr   r$   writeZrender_templatesettingsgetr   r   r	   debugrequestr   redirect)r   r   cmr-   r,   r.   r   r#   modelZserviceurlr   r   r   r4   0   s8    





zTreeHandler.getN)r   )__name__
__module____qualname____doc__r   r$   r   authenticatedr   	coroutiner4   r   r   r   r   r      s   r   z	{}/tree{}z%s/tree)r>   retornador   r   Zjupyter_server.base.handlersr   Z jupyter_server.extension.handlerr   r   r   Zjupyter_server.utilsr   r	   r
   Z	nbclassicr   r   formatZdefault_handlersr   r   r   r   <module>   s   F