
    oi@                     j    d dl Z d dlmZmZ d dlmZ d dlmZ ddlm	Z	 ddl
mZmZmZ  G d d	e	      Zy)
    N)
url_escapeurl_path_join)ensure_async)web   )VoilaTreeHandler)create_include_assets_functionsget_page_configget_server_root_dirc                   D     e Zd Z fdZej
                  dd       Z xZS )TornadoVoilaTreeHandlerc                 Z    t        |   di | | j                  j                  | _        y )N )super
initializevoila_configurationpage_config_hook)selfkwargs	__class__s     a/home/ubuntu/docker-apps/notebooks/venv/lib/python3.12/site-packages/voila/tornado/treehandler.pyr   z"TornadoVoilaTreeHandler.initialize   s'    $V$ $ 8 8 I I    c                    K    j                   }t        |j                  |             d {   }t        |j                  |             d {   }|rmt        |j	                  |             d {   }|r<|j
                  s0 j                  j                  d       t        j                  d       j                  |      } j                  |      }t        |j                  |             d {   } fd}	t        |d   d       |d<   t        |	|d         |d<    j                  j                   dk(  r& j#                  d	 j                  j$                        n j                  j$                  }
 j#                  d
d      j'                         }|dk(  rd}n|dk(  rd}n j                  j(                  } j+                  |
|      }
 j,                   j.                   j                   j                  d}t1        d i |} j2                  r  j2                  |fi |d|i |
|d<   d|d<    j4                  j6                  |d<   |sdnd}t9        | j,                        } j;                   j=                  |dd||||dt?         j.                         j4                  j6                  ||
|             y |rt        |j                  |d             d {   }|d   dk(  rdnd}tA         j,                  |tC        |            } j                  jE                  d j4                  jF                  |        jI                  |       y t        j                  d      7 A7 "7  7 7 w)!N)pathz1Refusing to serve hidden directory, via 404 Errori  c                     | d   dv ryt         j                  j                  | j                  d            \  }}|j                  v S )Ntype)	directorynotebookTr   )osr   splitextgetallowed_extensions)content__extr   s      r   allowed_contentz4TornadoVoilaTreeHandler.get.<locals>.allowed_content*   sE    6?&??''**7;;v+>?Cd5555r   r#   c                     | d   S )Nnamer   )is    r   <lambda>z-TornadoVoilaTreeHandler.get.<locals>.<lambda>0   s
    AfI r   )keyYESthemezclassic-tree trueTfalseF)base_urlsettingslogr   notebook_pathjupyterLabThemevoilafrontendqueryztree-lab.htmlz	tree.htmlzvoila.js)r7   main_js
page_titler4   breadcrumbscontentsterminals_availableserver_rootr8   page_configr-   	resources)r#   r   r   	notebooksfileszRedirecting %s to %sr   )%contents_managerr   
dir_existsfile_exists	is_hiddenallow_hiddenr3   infor   	HTTPErrorgenerate_breadcrumbsgenerate_page_titler!   sortedfilterr   allow_theme_overrideget_argumentr-   lowerclassic_treevalidate_themer1   r2   r
   r   requestr8   r	   writerender_templater   r   r   debugr   redirect)r   r   cmrD   rE   rF   r;   r:   r<   r&   	theme_argclassic_tree_argrQ   page_config_kwargsr?   template_namer@   modelserviceurls   `                   r   r!   zTornadoVoilaTreeHandler.get   s7    ""'4(@AA
()=>>*2<<+=>>IQRmmC((33D9K11$7J)"&&,77H6 #)))<BU"VHY"((9:M"NHY ++@@EI !!'4+C+C+I+IJ--33 
  $00DJJL6)#!W,$#77DD++I|DI !MM MMxx'+'?'?	" *?,>?K$$%%%( #' .7K)*&-K
##'<<#5#5K 3?O[M7t}}UIJJ$$!$&)"& +%(- 3DMM B,,,, +#' % " &rvvdEv'BCCE%*6]j%@kgG4 C
 HHNN14<<3D3DcJMM#--$$m B>> 8D DsZ   +M=M/!M=M2$M=5M56BM=7M88G.M=&M;'B	M=2M=5M=8M=;M=)r.   )__name__
__module____qualname__r   r   authenticatedr!   __classcell__)r   s   @r   r   r      s%    J 	X% X%r   r   )r   jupyter_server.utilsr   r   jupyter_core.utilsr   tornador   treehandlerr   utilsr	   r
   r   r   r   r   r   <module>rj      s/    
 : +  * ^%. ^%r   