B
    3¢\  ã               @   s`   d Z ddlmZ ddlZddlmZmZ ddlmZm	Z	 G dd„ deƒZ
d	e e
fd
e
fgZdS )z#Tornado handlers for the tree view.é    )ÚwebNé   )ÚIPythonHandlerÚ
path_regex)Úurl_path_joinÚ
url_escapec               @   s0   e Zd ZdZdd„ Zdd„ Z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 )NZtreeÚ ú/é   )r   Úbase_urlÚsplitÚrangeÚlenr   Úappend)ÚselfÚpathÚbreadcrumbsÚpartsÚiÚlink© r   ú5lib/python3.7/site-packages/notebook/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   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}|j|drŒ| |¡rB|jsB| j d¡ t d¡‚|  	|¡}|  
|¡}|  | jd|||| jd | jd | j dd	¡d
¡ nh| |¡rê|j|d	d}|d dkr´dnd}t| j|t|ƒƒ}| j d| jj|¡ |  |¡ n
t d¡‚d S )Nr
   )r   z1Refusing to serve hidden directory, via 404 Errori”  z	tree.htmlÚterminals_availableZserver_root_dirÚshutdown_buttonF)r   Znotebook_pathr   r   Zserver_rootr    )ZcontentÚtypeZnotebookZ	notebooksÚfileszRedirecting %s to %s)ÚstripZcontents_managerZ
dir_existsZ	is_hiddenZallow_hiddenÚlogÚinfor   Z	HTTPErrorr   r   ÚwriteZrender_templateZsettingsÚgetZfile_existsr   r   r   ÚdebugZrequestr   Zredirect)r   r   Úcmr   r   ZmodelZserviceZurlr   r   r   r'   %   s.    





zTreeHandler.getN)r	   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   Zauthenticatedr'   r   r   r   r   r      s
   r   z/tree%sz/tree)r-   Ztornador   ÚosZbase.handlersr   r   Zutilsr   r   r   Zdefault_handlersr   r   r   r   Ú<module>   s   @
