
    MhX                         d dl Z d dlZd dlZd dlmZmZ d dlmZmZm	Z	 d dl
mZmZmZ da G d dej                  Zd ZdS )    N)adaptercommon)log	messagingsockets)
componentsserverssessionsc                        e Zd ZdZej        j        Z fdZed             Zed             Z	ed             Z
ed             Zd Z xZS )Launcherz-Handles the launcher side of a debug session.c                     |5  |j         rJ t                                          ||           d | _        	 d | _        	 | |_         d d d            d S # 1 swxY w Y   d S N)launchersuper__init__pid	exit_code)selfsessionstream	__class__s      Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/debugpy/adapter/launchers.pyr   zLauncher.__init__   s     
	$ 
	$''''GGWf---DHR!DN4#G
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$ 
	$s   AAAAc                 f     |dt                     | _        | j                            |           d S )NsystemProcessId)intr   clientpropagate_after_startr   events     r   process_eventzLauncher.process_event"   s2    5*C00))%00000    c                 :    | j                             |           d S r   )r   r   r   s     r   output_eventzLauncher.output_event'   s    ))%00000r!   c                 2     |dt                     | _        d S )NexitCode)r   r   r   s     r   exited_eventzLauncher.exited_event+   s    z3//r!   c                     	 | j         j                            dd| j        i           n# t          $ r Y nw xY w| j                                         d S )Nexitedr%   )r   channel
send_eventr   	Exceptioncloser   s     r   terminated_eventzLauncher.terminated_event3   sf    	K**8j$.5QRRRR 	 	 	D	s   '* 
77c                     | j         5  | j        ,	 | j                            d           n# t          $ r Y nw xY wd d d            d S # 1 swxY w Y   d S )N	terminate)r   r   r)   requestr+   )r   s    r   terminate_debuggeezLauncher.terminate_debuggee;   s    \ 	 	~%L((5555    D		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s,   A	,A	
9A	9A		AA)__name__
__module____qualname____doc__r   	Componentmessage_handlerr   r    r#   r&   r-   r1   __classcell__)r   s   @r   r   r      s        77 *:O$ $ $ $ $ 1 1 _1 1 1 _1 0 0 _0   _      r!   r   c                 r	    |
rddgng }||z  }||gz  }i }t          |j                  } j        s3t          j                                        \  }|d<   t          j        |d<    fd}	 t          j	        d||d          an)# t          $ r}|                    d	 |          d }~ww xY wt          j                     	 t                                          \  }}|d
k    r|n| d| }|t          |          dgz  }||z  }t          j        t          j        |t          d          <   t          j        j        ddhk    rAt          d                    t          j        j                            |t          d          <   |dk    rt          j        d |           	 t+          j        ||t          t/          t0          j                                                  t/          |                                          z             t6          j        t6          j        t6          j                   n# t          $ r}|                    d|          d }~ww xY wt          j        d             j        j                             d           ddd}||         |	||d}|||d<   |rd|d<   	  j        j!        "                    d|           n1# tF          j$        $ r}|%                    |           Y d }~nd }~ww xY w &                     fd |
rd ntN          j(        !          s|                    d"          	  j)        j!        *                    |j+        |           n1# tF          j$        $ r}|%                    |           Y d }~nd }~ww xY w &                     fd#tN          j(        !          s|                    d$           j        r1	 t          ,                                 d at          j                     d S t          j-         d% tN          j(        !          }||                    d&          |.                                t          ,                                 d at          j                     d S # t          ,                                 d at          j                     w xY w)'Nsudoz-EportadapterAccessTokenc                     t                                            t          j                            |           }t          |           d S r   )listenerr,   r   JsonIOStreamfrom_socketr   )sockr   r   s     r   on_launcher_connectedz-spawn_debuggee.<locals>.on_launcher_connected_   s?    '33D99&!!!!!r!   r      )backlogz5{0} couldn't create listener socket for launcher: {1}z	127.0.0.1:z--DEBUGPY_LOG_DIRwarningerror DEBUGPY_LOG_STDERRinternalConsolez{0} spawning launcher: {1!r})cwdenvstdinstdoutstderrzFailed to spawn launcher: {0}z2{0} spawning launcher via "runInTerminal" request.supportsRunInTerminalRequest
integratedexternal)integratedTerminalexternalTerminal)kindtitleargsrM   rL   TargsCanBeInterpretedByShellrunInTerminalc                       j         S r   )r   r   s   r   <lambda>z spawn_debuggee.<locals>.<lambda>   s
    G$ r!   )timeoutz)Timed out waiting for launcher to connectc                        j         j        d uS r   )r   r   r\   s   r   r]   z spawn_debuggee.<locals>.<lambda>   s    G$(4 r!   z3Timed out waiting for "process" event from launcherc                     dS )NT )conns    r   r]   z spawn_debuggee.<locals>.<lambda>   s    $ r!   z'Timed out waiting for debuggee to spawn)/dict	argumentsno_debugr	   r>   getsocknamer   access_tokenr   server+   cant_handler
   report_socketsstrr   log_dirrP   levelsjoininfo
subprocessPopenlistosenvironitemssysrN   rO   r   capabilitiesrequirer)   send_requestr   MessageHandlingError	propagatewait_forr   PROCESS_SPAWN_TIMEOUTr   r0   commandr,   wait_for_connectionattach_to_session)r   start_requestpythonlauncher_pathadapter_hostrX   shell_expand_argsrL   consoleconsole_titler:   cmdlinerM   rd   _rB   exclauncher_hostlauncher_portlauncher_addrkindsrequest_argsrb   s   `                      r   spawn_debuggeer   D   s{   " !%,vtnn"GvGG
C],--I ?&/;;==9V*1*>	&'" " " " "

=-|Q
 
 
  
 
 
''CWc
 
 	

 X"'/';';'='=$} ++ M!33M33 	
 	C&&--4;"*-+C%&&':G 444-0#*:K1L1L-M-MC())*'''H3WgFFFV  T"*"2"2"4"455SYY[[8I8IIJJ)::      V V V#//0OQTUUUV HI7SSSN'//0NOOO+7ZXXEg&	 L &)U#  C>B:;- &33O\RRRR1 - - -m,,,,,,,,-
 $$$$!CTTv'C   
 
 	Y  ++,WXXX	)$,,]-BINNNN- 	) 	) 	)MM-((((((((	) 44440   
 
 	  ++E    	 	!!!!! *&&0L
 
 
 <++,UVVVw''' 	!!!!! 	!!!!s   +B 
B*B%%B*C R "BH3 2R 3
I=IIAR 0 K R K? K:5R :K??A R  %M& %R &N5N
R NAR AR 0R6)rs   rp   rv   debugpyr   r   debugpy.commonr   r   r   debugpy.adapterr   r	   r
   r>   r6   r   r   ra   r!   r   <module>r      s   
 
			     



 # # # # # # # # 2 2 2 2 2 2 2 2 2 2 9 9 9 9 9 9 9 9 9 91 1 1 1 1z# 1 1 1hB" B" B" B" B"r!   