
    <h}                         S r SSKrSSKrSSKrSSKrSSKJrJr  SSK	J
r
  SSKJr  SSKJr  SSKJrJr  SS	KJr   " S
 S\5      r\R*                  rg)z@An application to launch a kernel by name in a local subprocess.    N)
JupyterApp
base_flags)IOLoop)Unicode   )__version__)NATIVE_KERNEL_NAMEKernelSpecManager)KernelManagerc                      ^  \ rS rSrSr\rSr\\	/r
SSS.rS\S   0r\" \SS	9R!                  S
S9rSS\R&                  \\R*                  \   S4   SS4U 4S jjjrSS jrS\SS4S jrSS jrSS jrSS jrSrU =r$ )	KernelApp   z.Launch a kernel by name in a local subprocess.z$Run a kernel locally in a subprocesszKernelApp.kernel_namezKernelManager.ip)kernelipdebugz"The name of a kernel type to start)helpT)configNargvreturnc                   > [         TU ]  U5        S[        R                  " 5       -  nU R                  R                  S0 5      R                  S[        R                  R                  U R                  U5      5        [        U R                  U R                  S9U l        [        R                  " 5       U l        U R                  R!                  U R"                  5        g)zInitialize the application.zkernel-%s.jsonr   connection_file)kernel_namer   N)super
initializeuuiduuid4r   
setdefaultospathjoinruntime_dirr   r   kmr   currentloopadd_callback_record_started)selfr   cf_basename	__class__s      kC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\jupyter_client/kernelapp.pyr   KernelApp.initialize"   s    4 &53>>rww||D,<,<kJ	
  D,<,<T[[QNN$			t334    c                    ^  [         R                  S:X  a  gS[        S[        R                  SS4U 4S jjn[
        R                  [
        R                  4 H  n[
        R
                  " X!5        M     g)z&Shutdown on SIGTERM or SIGINT (Ctrl-C)ntNsignoframer   c                 R   > TR                   R                  TR                  U 5        g N)r$   add_callback_from_signalshutdown)r/   r0   r'   s     r*   shutdown_handler1KernelApp.setup_signals.<locals>.shutdown_handler4   s    II..t}}eDr,   )r   nameinttAnysignalSIGTERMSIGINT)r'   r5   sigs   `  r*   setup_signalsKernelApp.setup_signals/   sX    77d?	EC 	E 	E$ 	E NNFMM2CMM#0 3r,   r/   c                     U R                   R                  SU5        U R                  R                  5         U R                  R                  5         g)zShut down the application.zShutting down on signal %dN)loginfor"   shutdown_kernelr$   stop)r'   r/   s     r*   r4   KernelApp.shutdown:   s3    2E:!		r,   c                     U R                   R                  nU R                  R                  SU5        U R                  R                  S[        R
                  R                  U5      5        g)z'Log the connection info for the kernel.zConnection file: %sz"To connect a client: --existing %sN)r"   r   rB   rC   r   r   basename)r'   cfs     r*   log_connection_infoKernelApp.log_connection_info@   sF    WW$$+R0:BGG<L<LR<PQr,   c                     [         R                  R                  S5      nUb  [        US5          SSS5        gg! , (       d  f       g= f)zfFor tests, create a file to indicate that we've started

Do not rely on this except in our own tests!
*JUPYTER_CLIENT_TEST_RECORD_STARTUP_PRIVATENwb)r   environgetopen)r'   fns     r*   r&   KernelApp._record_startedF   s:    
 ZZ^^HI>b$   s	   ;
A	c                 l   U R                   R                  SU R                  5         U R                  R	                  5         U R                  5         U R                  5         U R                  R                  5         U R                  R                  5         g! U R                  R                  5         f = f)zStart the application.zStarting kernel %rN)
rB   rC   r   r"   start_kernelrJ   r?   r$   startcleanup_resources)r'   s    r*   rV   KernelApp.startP   sw    *D,<,<=	(GG  "$$& IIOOGG%%'DGG%%'s   AB B3)r"   r$   r2   )r   N)__name__
__module____qualname____firstlineno____doc__r   versiondescriptionr   r
   classesaliasesr   flagsr   r	   tagr   r9   UnionstrSequencer   r?   r8   r4   rJ   r&   rV   __static_attributes____classcell__)r)   s   @r*   r   r      s    8G8K/0G * G j)*E,3WX\\ ] K5qwwsAJJsOT'AB 5d 5 5	1c d R	( 	(r,   r   )r]   r   r;   typingr9   r   jupyter_core.applicationr   r   tornado.ioloopr   	traitletsr    r   
kernelspecr	   r
   managerr   r   launch_instancemain r,   r*   <module>rs      sB    F 	    ; !   = "I(
 I(X   r,   