§
    �Ÿj)  ã                   óÄ   — d Z ddlZddlZddlZddlmZmZ ddlmZ ddl	m
Z
 	 	 	 	 	 	 ddee         dedz  d	edz  d
edz  deeef         dz  dededz  dedefd„ZdgZdS )zUtilities for launching kernelsé    N)ÚPIPEÚPopen)ÚAny)Ú
get_loggerFÚcmdÚstdinÚstdoutÚstderrÚenvÚindependentÚcwdÚkwÚreturnc                 ó¦  — d}|€t           n|}	t          j                             d¦  «        }
|
r't	          t
          j        d¦  «        }|€|n|}|€|n|}n||}}|�|nt
          j                             ¦   «         }|                     ¦   «         }|	||||dœ}| 	                    |¦  «         t          j
        dk    rº|r||d<   dd	lm}  |¦   «         }t          |¦  «        |d
<   |d
         |d<   	 ddlm}m}m}m} n#  ddlm}m}m}m} Y nxY w|r||d<   n9 |¦   «         } ||||dd|¦  «        }t          t)          |¦  «        ¦  «        |d<   |
r|                     dd¦  «        dz  |d<   d|d<   n*d|d<   |s#t          t          j        ¦   «         ¦  «        |d<   	 d„ | D ¦   «         } t/          | fi |¤Ž}nØ# t0          $ rË}	 d}d„ |                     ¦   «         D ¦   «         }|                     | |                     dt
          j        ¦  «        |¦  «        }t;          ¦   «                              |¦  «         nL# t0          $ r?}t?          j         d| › d|› �d¬¦  «         t?          j         d|› �d¬¦  «         Y d}~nd}~ww xY w|‚d}~ww xY wt          j
        dk    r||_!        |r$|€"|j"        €J ‚|j"         #                    ¦   «          |S )a¼  Launches a localhost kernel, binding to the specified ports.

    Parameters
    ----------
    cmd : Popen list,
        A string of Python code that imports and executes a kernel entry point.

    stdin, stdout, stderr : optional (default None)
        Standards streams, as defined in subprocess.Popen.

    env: dict, optional
        Environment variables passed to the kernel

    independent : bool, optional (default False)
        If set, the kernel process is guaranteed to survive if this process
        dies. If not set, an effort is made to ensure that the kernel is killed
        when this process dies. Note that in this case it is still good practice
        to kill kernels manually before exiting.

    cwd : path, optional
        The working dir of the kernel process (default: cwd of this process).

    **kw: optional
        Additional arguments for Popen

    Returns
    -------

    Popen instance for the kernel subprocess
    TNzpythonw.exeÚw)r   r	   r
   r   r   Úwin32r   é   )Úcreate_interrupt_eventÚJPY_INTERRUPT_EVENTÚIPY_INTERRUPT_EVENTr   )ÚCREATE_NEW_PROCESS_GROUPÚDUPLICATE_SAME_ACCESSÚDuplicateHandleÚGetCurrentProcessÚcreationflagsÚJPY_PARENT_PIDi   FÚ	close_fdsÚstart_new_sessionc                 óL   — g | ]!}t           j                             |¦  «        ‘Œ"S © )ÚosÚpathÚ
expanduser)Ú.0Úss     úd/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jupyter_client/launcher.pyú
<listcomp>z!launch_kernel.<locals>.<listcomp>�   s(   € Ð2Ð2Ð2¨�rŒw×!Ò! !Ñ$Ô$Ð2Ð2Ð2ó    z>Failed to run command:
{}
    PATH={!r}
    with kwargs:
{!r}
c                 ó&   — i | ]\  }}|d k    ¯||“ŒS )r   r    )r$   ÚkeyÚvalues      r&   ú
<dictcomp>z!launch_kernel.<locals>.<dictcomp>¤   s$   € ÐWÐWÐW©*¨#¨uÈ#ÐQVÊ,È,˜3 È,È,È,r(   ÚPATHzFailed to run command: 'z' due to exception: é   )Ú
stacklevelz@The following exception occurred handling the previous failure: )$r   ÚsysÚ
executableÚendswithÚopenr!   ÚdevnullÚenvironÚcopyÚupdateÚplatformÚwin_interruptr   ÚstrÚ_winapir   r   r   r   Ú_subprocessÚintÚ
setdefaultÚgetpidr   Ú	ExceptionÚitemsÚformatÚgetÚdefpathr   ÚerrorÚwarningsÚwarnÚwin32_interrupt_eventr   Úclose)r   r   r	   r
   r   r   r   r   Úredirect_inÚ_stdinÚredirect_outÚ	blackholeÚ_stdoutÚ_stderrÚkwargsÚ	main_argsr   Úinterrupt_eventr   r   r   r   ÚpidÚhandleÚprocÚexÚmsgÚwithout_envÚex2s                                r&   Úlaunch_kernelrZ      s  € ðb €KØ�]�TˆT¨€Fõ ”>×*Ò*¨=Ñ9Ô9€Lð ð *Ý�œ SÑ)Ô)ˆ	Ø%˜~�)�)°6ˆØ%˜~�)�)°6ˆˆà! 6�ˆà�/ˆ#ˆ#­¬
¯ªÑ(9Ô(9€Cà�WŠW‰YŒY€FàØØØØðð €Ið ‡M‚M�)ÑÔÐõ „|�wÒÐØð 	 ØˆF�5‰Mà9Ð9Ð9Ð9Ð9Ð9ð 1Ð0Ñ2Ô2ˆÝ%(¨Ñ%9Ô%9ˆÐ!Ñ"à%(Ð)>Ô%?ˆÐ!Ñ"ð	ðð ð ð ð ð ð ð ð ð ð ð ð øð	ðð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð 	5Ø&>ˆF�?Ñ#Ð#à#Ð#Ñ%Ô%ˆCØ$�_ØØØØØØ%ñô ˆFõ %(­¨F©¬Ñ$4Ô$4ˆCÐ Ñ!ð ð 	à×!Ò! /°1Ñ5Ô5¸
ÑBð �?Ñ#ð $ˆˆ{ÑÐð '+ˆÐ"Ñ#Øð 	5Ý$'­¬	©¬Ñ$4Ô$4ˆCÐ Ñ!ðà2Ð2¨cÐ2Ñ2Ô2ˆÝ�SÐ#Ð#˜FÐ#Ð#ˆˆøÝð ð ð ð	ØWˆCð XÐW¸¿º¹¼ÐWÑWÔWˆKØ—*’*˜S #§'¢'¨&µ"´*Ñ"=Ô"=¸{ÑKÔKˆCÝ‰LŒL×Ò˜sÑ#Ô#Ð#Ð#øÝð 	ð 	ð 	ÝŒMÐR°SÐRÐRÈbÐRÐRÐ_`ÐaÑaÔaÐaÝŒMØXÐSVÐXÐXØðñ ô ð ð ð ð ð ð øøøøð	øøøð ˆøøøøðøøøõ  „|�wÒÐà%4ˆÔ"ð ð �u�}ØŒzÐ%Ð%Ð%ØŒ
×ÒÑÔÐà€KsI   Ã2C? Ã?DÆ"F< Æ<
JÇA6H>È=JÈ>
JÉ5JÉ=JÊJÊJÊJrZ   )NNNNFN)Ú__doc__r!   r0   rF   Ú
subprocessr   r   Útypingr   Útraitlets.logr   Úlistr:   r=   ÚdictÚboolrZ   Ú__all__r    r(   r&   ú<module>rc      s'  ðØ %Ð %ð 
€	€	€	Ø 
€
€
€
Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à $Ð $Ð $Ð $Ð $Ð $ð
 ØØØ!%ØØðjð jØ	ˆcŒðjà�‰:ðjð �$‰Jðjð �$‰Jð	jð
 
ˆc�3ˆhŒ˜$Ñ	ðjð ðjð 
ˆt‰ðjð ðjð ðjð jð jð jð\ ð€€€r(   