o
    ^i                     @  s  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	m
Z
mZ ddlmZmZmZ ddlmZ ddlmZ dd	lmZmZmZ d
ZeeZeeZee ee
ZeeZee ee  Z!ee  Z"G dd de	eZ#e#j$ Z%Z&e'dkre%  dS dS )z#A Jupyter console app to run files.    )annotationsN)
JupyterAppbase_aliases
base_flags)AnyDictFloat)catch_config_error   )__version__)JupyterConsoleAppapp_aliases	app_flags
   c                      s   e Zd ZdZeZdZdZee	Z	ee
Z
eeZeeZeddddZdd fddZedd fddZdddZd fddZ  ZS )RunAppz$An Jupyter Console app to run files.zjupyter runzRun Jupyter kernel code.<   Ta5  Timeout for giving up on a kernel (in seconds).

        On first connect and restart, the console tests whether the
        kernel is running and responsive by sending kernel_info_requests.
        This sets the timeout in seconds for how long the kernel can take
        before being presumed dead.
        )confighelpNargvlist[str] | NonereturnNonec                   s,   t  | | | j | jdd | _dS )z!Parse the command line arguments.N)superparse_command_linebuild_kernel_argv
extra_argsfilenames_to_runselfr   	__class__ P/home/ubuntu/hpml_nyu/venv/lib/python3.10/site-packages/jupyter_client/runapp.pyr   ?   s   zRunApp.parse_command_linec                   sN   | j d t | t|  ttj| j | jr%t	
| jj dS dS )zInitialize the app.zjupyter run: initialize...N)logdebugr   
initializer   signalSIGINThandle_sigintkernel_manageratexitregistershutdown_kernelr   r   r!   r"   r%   E   s   
zRunApp.initializeargst.Anyc                 G  s$   | j r
| j   dS | jd dS )zHandle SIGINT.z*Cannot interrupt kernels we didn't start.
N)r)   interrupt_kernelr#   error)r   r-   r!   r!   r"   r(   O   s   zRunApp.handle_sigintc              	     s  | j d t   | jj| jd | jr]| jD ]A}| j d| t|,}|	 }| jj
|td}|d d dkr=dnd}|rKd	| d
}t|W d   n1 sUw   Y  qdS | j d tj	 }| jj
|td}|d d dkrzdnd}|rd}t|dS )zStart the application.zjupyter run: starting...)timeoutzjupyter run: executing `%s`contentstatusokr   r
   zjupyter-run error running ''Nz!jupyter run: executing from stdinz!jupyter-run error running 'stdin')r#   r$   r   startkernel_clientwait_for_readykernel_timeoutr   openreadexecute_interactiveOUTPUT_TIMEOUT	Exceptionsysstdin)r   filenamefpcodereplyreturn_codemsgr   r!   r"   r6   V   s2   




zRunApp.start)N)r   r   r   r   )r-   r.   r   r   )r   r   )__name__
__module____qualname____doc__r   versionnamedescriptionr   flagsaliasesr   frontend_aliasesfrontend_flagsr   r9   r   r	   r%   r(   r6   __classcell__r!   r!   r   r"   r   )   s&    
	r   __main__)(rJ   
__future__r   r*   r&   r?   typingtjupyter_core.applicationr   r   r   	traitletsr   r   r   traitlets.configr	    r   
consoleappr   r   r   r=   dictrN   frontend_flags_dictupdaterO   frontend_aliases_dictsetkeysrP   rQ   r   launch_instancemainlaunch_new_instancerG   r!   r!   r!   r"   <module>   s2    


F
