
    Mhx                        d Z ddlmZ ddlZddlZddlZddlZddlm	Z	 ddl
mZ ddlmZ ddlmZ ddlmZ d	d
lmZmZ d	dlmZ  G d de          ZdS )A terminals extension app.    )annotationsN)which)ensure_async)ExtensionApp)trans)Type   )api_handlershandlers)TerminalManagerc                      e Zd ZU dZdZ eed                              d          Zde	d<   d	Z
ddZddZddZddZddZddZdS )TerminalsExtensionAppr   jupyter_server_terminalsz"The terminal manager class to use.)default_valuehelpT)configztype[TerminalManager]terminal_manager_classFreturnNonec                    | j         r| j         j        s| j                            ddi           dS |                                  | j                            d| j        d           dS )zInitialize settings.terminals_availableFNT)r   terminal_manager)	serverappterminals_enabledsettingsupdateinitialize_configurablesr   selfs    \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jupyter_server_terminals/app.pyinitialize_settingsz)TerminalsExtensionApp.initialize_settings%   s}    ~ 	T^%E 	M  "7!?@@@F%%'''$(d>STT	
 	
 	
 	
 	
    c                ^   t           j        dk    rdnt          d          }| j        J | j        j                            d          }t          |t                    rt          j	        |          }|"t           j
                            d          p|gn|}t           j        dk    r5|3t          j                                        s|                    d           |                     || j        j        | j        j        d| j        	          | _        | j        j        | j        _        dS )
zInitialize configurables.ntzpowershell.exeshNshell_commandSHELLz-l)JUPYTER_SERVER_ROOTJUPYTER_SERVER_URL)r'   	extra_envparent)osnamer   r   terminado_settingsget
isinstancestrshlexsplitenvironsysstdoutisattyappendr   root_dirconnection_urlr   log)r    default_shellshell_overrideshells       r!   r   z.TerminalsExtensionApp.initialize_configurables/   s   ,.GtOO((t~))):>>OOnc** 	9"[88N:H:PRZ^^G$$566Vd 	 7d??~5cj>O>O>Q>Q5LL $ ; ;'+~'>&*n&C  > !< !
 !
 %)N$6!!!r#   c                   | j         sdS | j         j        s!| j        d         | j         j        j        d<   dS | j                            dt          j        d| j        if           | j                            t          j
                   | j         J | j        | j         j        j        d<   | j        d         | j         j        j        d<   dS )zInitialize handlers.Nr   z/terminals/websocket/(\w+)term_managerr   )r   r   r   web_appr   r9   
TermSocketr   extendr   default_handlersr   s    r!   initialize_handlersz)TerminalsExtensionApp.initialize_handlersK   s    ~ 	F~/ 	EI]%FDN"+,AB F-#!67	
 	
 	
 	\:;;;~)))>B>S'(:;AE!B
'(=>>>r#   dict[str, t.Any] | Nonec                4    | j         r| j        j        }|r|S dS )zGet current activity info.N)r   r   	terminals)r    rI   s     r!   current_activityz&TerminalsExtensionApp.current_activitye   s+    # 	!-7I !  tr#   c                  K   | j         sdS | j        }t          |                                          }t	          j        dd|          }| j                            d||           t          |	                                           d{V  dS )zShutdown all terminals.

        The terminals will shutdown themselves when this process no longer exists,
        but explicit shutdown allows the TerminalManager to cleanup.
        NzShutting down %d terminalzShutting down %d terminalsz%s %% %s)
r   r   lenlistr   ngettextr<   infor   terminate_all)r    r   n_terminalsterminal_msgs       r!   cleanup_terminalsz'TerminalsExtensionApp.cleanup_terminalsm   s       ' 	F0*//1122~')E{
 
 	j,<<<+99;;<<<<<<<<<<<r#   c                >   K   |                                   d{V  dS )zStop the extension.N)rS   r   s    r!   stop_extensionz$TerminalsExtensionApp.stop_extension~   s0      $$&&&&&&&&&&&r#   N)r   r   )r   rG   )__name__
__module____qualname____doc__r.   r	   r   tagr   __annotations__r   r"   r   rF   rJ   rS   rU    r#   r!   r   r      s         $$%D48D%,P5 5 5	cc       
 
 
 
7 7 7 78
 
 
 
4   = = = ="' ' ' ' ' 'r#   r   )rY   
__future__r   r-   r3   r6   typingtshutilr   jupyter_core.utilsr   $jupyter_server.extension.applicationr   jupyter_server.transutilsr   	traitletsr	    r   r   terminalmanagerr   r   r\   r#   r!   <module>rg      s       " " " " " " 				  



           + + + + + + = = = = = = + + + + + +       $ $ $ $ $ $ $ $ , , , , , ,m' m' m' m' m'L m' m' m' m' m'r#   