
    oiT
                     6    d dl mZmZ ddlmZ  G d de      Zy)    )
url_escapeurl_path_join   )BaseVoilaHandlerc                   D     e Zd Z fdZdededefdZd Zd Zd Z	 xZ
S )	VoilaTreeHandlerc                     t        |   di | g t        | j                  j                  j                               d| _        y )Nz.ipynb )super
initializelistvoila_configurationextension_language_mappingkeysallowed_extensions)selfkwargs	__class__s     Y/home/ubuntu/docker-apps/notebooks/venv/lib/python3.12/site-packages/voila/treehandler.pyr   zVoilaTreeHandler.initialize   sG    $V$#
$**EEJJLM#
#
    themeclassic_treereturnc                 j    |r0g d}||vr| j                   j                  d       y|dk(  ry|dk(  ry|S )zECheck the compatibility between the requested theme and the tree page)darklightJupyterLab DarkJupyterLab LightzZCustom JupyterLab theme is not supported in the classic tree, fallback to the light theme!r   r   r   r   )logwarn)r   r   r   supported_themess       r   validate_themezVoilaTreeHandler.validate_theme   sI    W,,p --!.."r   c                 >    | j                   d   j                  |      S )z1Return the jinja template object for a given namevoila_jinja2_env)settingsget_template)r   names     r   r&   zVoilaTreeHandler.get_template&   s    }}/0==dCCr   c                    t        | j                  d      dfg}|j                  d      }t        t	        |            D ]J  }||   s	t        | j                  dt        t        |d |dz                 }|j                  |||   f       L |S )Nz
voila/tree /r   )r   base_urlsplitrangelenr   append)r   pathbreadcrumbspartsilinks         r   generate_breadcrumbsz%VoilaTreeHandler.generate_breadcrumbs*   s    %dmm\BBGH

3s5z" 	5AQx$MM }eGa!en=>
 ""D%(#34	5 r   c                 j    |j                  d      }t        |      dkD  r|dd  }t        | }|r|dz   S y)Nr*      u   Voilà Home)r,   r.   r   )r   r0   r2   
page_titles       r   generate_page_titlez$VoilaTreeHandler.generate_page_title7   s@    

3u:>"#JE"E*
## r   )__name__
__module____qualname__r   strboolr"   r&   r5   r:   __classcell__)r   s   @r   r   r      s2    
C t   D!r   r   N)jupyter_server.utilsr   r   handlerr   r   r
   r   r   <module>rC      s    ; %1!' 1!r   