
    Mh                        d Z ddlmZ ddl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 dd	lmZ  G d
 deee          ZdS )z7A lab app that runs a sub process for a demo or a test.    )annotationsN)Any)ExtensionAppExtensionAppJinjaMixin)IOLoop   )	LabConfigadd_handlers)Processc                  B    e Zd ZdZdZdZddZddZdd	Zdd
Z	ddZ
dS )
ProcessAppzFA jupyterlab app that runs a separate process and exits on completion.TFreturn tuple[list[str], dict[str, Any]]c                "    t           j        dgi fS )zeGet the command and kwargs to run with `Process`.
        This is intended to be overridden.
        z	--version)sys
executableselfs    ]/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jupyterlab_server/process_app.pyget_commandzProcessApp.get_command   s     ,b00    Nonec                \    t          j                                        | j                   dS )zStart the application.N)r   currentadd_callback_run_commandr   s    r   initialize_settingszProcessApp.initialize_settings   s'    %%d&788888r   c                0    t          | j        |            dS )zInitialize the handlers.N)r
   handlersr   s    r   initialize_handlerszProcessApp.initialize_handlers#   s    T]D)))))r   c                    |                                  \  }}|                    d| j                   t          |fi |                                }t          j                                        || j                   d S )Nlogger)	r   
setdefaultlogr   
wait_asyncr   r   
add_future_process_finished)r   commandkwargsfutures       r   r   zProcessApp._run_command'   sw    **,,(DH---++F++6688##FD,BCCCCCr   r*   r   c                D   	 t          j                                                     t          j        |                                           d S # t          $ rF}| j                            t          |                     t          j        d           Y d }~d S d }~ww xY w)Nr   )
r   r   stopr   exitresult	Exceptionr$   errorstr)r   r*   es      r   r'   zProcessApp._process_finished-   s    	N!!###HV]]__%%%%% 	 	 	HNN3q66"""HQKKKKKKKKK	s   AA 
B;BBN)r   r   )r   r   )r*   r   r   r   )__name__
__module____qualname____doc__load_other_extensionsopen_browserr   r   r    r   r'    r   r   r   r      s        PP  L1 1 1 19 9 9 9* * * *D D D D     r   r   )r6   
__future__r   r   typingr   $jupyter_server.extension.applicationr   r   tornado.ioloopr   r   r	   r
   processr   r   r9   r   r   <module>r?      s    > = " " " " " " 



       U U U U U U U U ! ! ! ! ! ! - - - - - - - -      " " " " "'L " " " " "r   