
    Xh                    ,   d Z ddlmZ ddlZddlZddlmZ ddlZddlm	Z
 ddlmZ ddlmZmZ ddlZddlmZ ddlmZ d	gZdd
Zej                  j/                  ej                  j1                  e            Z ej6                  d       Z ej6                  d       Z ej6                  d       Z ej6                  d       Z ej6                  d       Z ej6                  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z!ej6                  	 	 	 	 	 	 dd       Z"y)zpytest fixtures.    )annotationsN)join)Path)AnyCallable)	ServerApp)LabServerAppzpytest_jupyter.jupyter_serverc                h     | j                   | }|j                         s|j                  d       |S )zUtil for making a directory.T)parents)joinpathexistsmkdir)tmp_pathpartspaths      S/var/www/html/myenv/lib/python3.12/site-packages/jupyterlab_server/pytest_plugin.pyr   r      s0    8e$D;;=

4
 K    c                    t        | d      S )Napp_settingsr   r   s    r   <lambda>r   !   s    5>3R r   c                    t        | d      S )Nuser_settingsr   r   s    r   r   r   "   s    E(O4T r   c                    t        | d      S )Nschemasr   r   s    r   r   r   #   s    eHi.H r   c                    t        | d      S )N
workspacesr   r   s    r   r   r   $   s    x1N r   c                    t        | d      S )Nlabextensions_dirr   r   s    r   r   r   %   s    E(DW4X r   c                *    d fd}j                  d      }|j                  d       t        t        ddd      }	t        t	              d      }
t
        j                  j                  |
      rt        j                  |
       t        j                  |	|
       dD ]  }|dz   }t        t	              d|      }t        t        ddd|      }	t        |dd|      }
t        j                  |
      rt        j                  |
       t        j                  |	|
       t        t        |d	      d
      5 }t        |t        d            }t        j                  ||       ddd        t        t        ddd      }	t        t	              d      }
t
        j                  j                  |
      rt        j                   |
       t        j"                  |	|
       t        t        dd      }t        j$                  |      D ]v  }t        ||      }	t        t	              |      }
t
        j                  j                  |
      rt        j                   |
       t        j&                  |	t	                     x |S # 1 sw Y   xY w)z8Return a factory function for a labserver extension app.c                     t        t              t              dt              t              t              t              t              g      S )z/Factory function for lab server extension apps.z/lab)
static_dirtemplates_dirapp_urlapp_settings_diruser_settings_dirschemas_dirworkspaces_dirextra_labextensions_path)r	   str)kwargsr&   jp_root_dirjp_template_dirr    r(   r'   r)   s    r   _make_labserver_extension_appzCmake_labserver_extension_app.<locals>._make_labserver_extension_app4   sQ    ;'o. !12!"34K(~.&)*;&<%=	
 		
r   z
index.htmla  
<!DOCTYPE html>
<html>
<head>
  <title>{{page_config['appName'] | e}}</title>
</head>
<body>
    {# Copy so we do not modify the page_config with updates. #}
    {% set page_config_full = page_config.copy() %}

    {# Set a dummy variable - we just want the side effect of the update. #}
    {% set _ = page_config_full.update(baseUrl=base_url, wsUrl=ws_url) %}

      <script id="jupyter-config-data" type="application/json">
        {{ page_config_full | tojson }}
      </script>
  <script src="{{page_config['fullStaticUrl'] | e}}/bundle.js" main="index"></script>

  <script type="text/javascript">
    /* Remove token from URL. */
    (function () {
      var parsedUrl = new URL(window.location.href);
      if (parsedUrl.searchParams.get('token')) {
        parsedUrl.searchParams.delete('token');
        window.history.replaceState({ }, '', parsedUrl.href);
      }
    })();
  </script>
</body>
</html>
	test_datar   z@jupyterlab)zapputils-extensionzcodemirror-extensionz
-federatedzpackage.orig.jsonwT)	extension)name
jupyterlabNzapp-settingszoverrides.jsonr   )r,   r   returnr	   )r   
write_textpjoinHEREr+   osr   r   shutilrmtreecopytreeospopendictjsondumpremovecopyfilelistdircopy)r-   r.   r&   r'   r(   r)   r    r/   indexsrcdstr3   target_nametargetfiddataws_pathitems   ```````           r   make_labserver_extension_apprO   (   s   
 
 $$\2E		 F k9m
<C
K -
0C	ww~~cc
OOC ? 
!\)s,-}kJD+y-FFI}kB::c?MM#S!% 34c: 	!c[TD5IJDIIdC 	! 	!
! k>3C
DC
$%'7
8C	ww~~c
		#
OOC D+|4G

7# .GT"C'.77>>#IIcNC^,-. )()	! 	!s   >.JJ	c                V     |       }|j                  |        |j                          |S )zA lab server app.)_link_jupyter_server_extension
initialize)jp_serverapprO   apps      r   labserverapprU      s)    
 '
(C&&|4NNJr   )r   r   r   r+   r5   r   )r-   r   r.   r   r&   r   r'   r   r(   r   r)   r   r    r   r5   Callable[..., LabServerApp])rS   r   rO   rV   r5   r	   )#__doc__
__future__r   r@   r9   os.pathr   r=   r:   r   r7   pathlibr   typingr   r   pytestjupyter_server.serverappr   jupyterlab_serverr	   pytest_pluginsr   abspathdirname__file__r8   fixturer&   r'   r(   r)   r    rO   rU    r   r   <module>re      sP    "  	   !     . *12 
wwrwwx01!6>>"RS "FNN#TU fnnHI NO"FNN#XY  `)`)`) `) 	`)
 `) `) `) !`) `)F ;V r   