
    Xh.                     n   d dl Z d dlZd dl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	m
Z
mZ d dlmZ d dlmZ d dlmZ  ej$                         Zddej(                  i d	Zd
g diZdad Zd Zde_        d ZddZd Zedd       Zde_        edd       Z  G d d      Z! e!       Z!d Z"d Z#d Z$d Z%y)    N)adapter)jsonlogsockets)get_global_debugger)absolute_path)hide_debugpy_internalsnoneT)qt
subProcesspython	pythonEnvr   )autor
   pysidepyside2pyqt4pyqt5c                      t        j                  d| |       |j                  dd       	 t        j                  | i | y # t
        $ r  w xY w)Nz pydevd.settrace(*{0!r}, **{1!r})notify_stdinF)r   debug
setdefaultpydevdsettrace	Exception)argskwargss     F/var/www/html/myenv/lib/python3.12/site-packages/debugpy/server/api.py	_settracer   (   sK    II0$?
ne,(( s   A Ac                      t         j                  rydt         _        t        j                  d       t        j                  d       t        j
                  't        j                  t        j
                  dz          yy)z>Starts logging to log.log_dir, if it hasn't already been done.NTzdebugpy.server)prefixzInitial environment:z/debugpy.pydevd.log)ensure_loggingensuredr   to_filedescribe_environmentlog_dirr   log_to     r   r!   r!   2   sW    !NKK'(34
{{ckk$99: r(   Fc                    t         j                  rt        d      t        j                  d| f       | t
        j                  u r;t        j                  xj                  t        t        j                        z  c_        y | t        _
        y )Nzlogging has already begunzlog_to{0!r})r!   r"   RuntimeErrorr   r   sysstderrlevelssetLEVELSr%   )paths    r   r&   r&   @   sW    677IImdW%szz

S_,r(   c                    t                t        j                  d| |f       | |} nt        |       } | j	                  |       | j                         D ]  \  }}|t        vrt        dj                  |            t        t        |         }t        |      |ur%t        dj                  ||j                              t        j                  |      }|||vrt        dj                  ||            |t        |<    y )Nzconfigure{0!r}zUnknown property {0!r}z{0!r} must be a {1}z{0!r} must be one of: {1!r})r!   r   r   dictupdateitems_config
ValueErrorformattype__name___config_valid_valuesget)
propertiesr   kvexpected_typevalid_valuess         r   	configurerA   K   s    IIV 45
*%
&!  " 	1G5<<Q?@@WQZ(7-'299!]=S=STUU+//2$1L+@:AA!\RSS
	r(   c                       fd}|S )Nc                 `   	 | \  }}	 |j                          d|cxk  rdk  st	        d       t	        d      t                t        j                  dj                  | |       t        j                  dt        j                  t                     t        j                  dd      }|dk7  rt        j                  |       d	t        j                  d
d      d}t!               rKt"        j$                  j'                  t)        t*        j,                              }|f|d<   t/        d      f|d<   	  | |fi |S # t         $ r | }t        j                         }||f} Y [w xY w# t         $ r t	        d      w xY w# t         $ r% t        j0                  dj                  d       Y y w xY w)Nzexpected port or (host, port)r   i   zinvalid port numberz{0}({1!r}, **{2!r})z Initial debug configuration: {0}r   r
   Fr   T)suspendpatch_multiprocessingdont_trace_start_patternszdebugpy_launcher.pydont_trace_end_patternsz{0}() failed:infolevel)r   r   get_default_localhost	__index__r6   r!   r   r   r9   rH   r   reprr5   r;   r   enable_qt_supportr	   osr0   dirnamer   debugpy__file__strreraise_exception)	addressr   _port	localhostqt_modesettrace_kwargsdebugpy_pathfuncs	           r   r   z _starts_debugging.<locals>.debugb   s   	(GAt
	>NN T!E!233 "233		'H3TYYw5GH++dF+f$$W- %,[[t%D

 "#77??=9I9I+JKL<H?O78:=>S:T9VO56	P;F;;=  	(D557I $'G	(  	><==	>2  	P!!/4==O	Ps.   D= E' 3	E? =#E$#E$'E<?+F-,F-r'   )r\   r   s   ` r   _starts_debuggingr]   a   s    #PJ Lr(   c           
      
   t         j                  rt        d      | \  }}|r-t        j                  d||       d|d<   t        d2||ddd| y dd l}t        j                  t        j                  d      d      j                  d	      }	 t        j                         }t        j                  |dd
      }	 t        j$                  |      \  }
}t        j                  d|
|       | \  }}t&        j)                  dt*        j,                        t        j.                  j1                  t2        j4                        dt#        |      d|dt#        |      d|g
}t        j6                  |dt        j6                  gz  }t        j                  dt9        j:                  |             d}t*        j<                  dk(  r
|dz  }|dz  }t&        j)                  d      }t?        |      sd }	 |jA                  |d||      a!t        jD                  dk(  rtB        jG                          n.dtB        _$        tK        jL                  tB        jN                         	 |jQ                         \  }}	 |jS                  d        |jU                  d!d      }	 t9        jV                  |jY                         j                  d"            }|j[                          	 t        j\                  |       	 |j[                          t        j                  d't9        j:                  |             d(|v rt        t#        |d(               	 t#        |d)   d*         }tc        |d)   d+         }t#        |d,   d*         }tc        |d,   d+         }t        j                  d/||       t        d2||dd|d0| t        j                  d1||       dt         _        ||fS # t        $ r1}	t        j                   d       t        dt#        |	      z         d }	~	ww xY w# t        $ r3}	t        j                   dd       t        d t#        |	      z         d }	~	ww xY w# |j[                          w xY w# t        j\                  |       w xY w# t^        j`                  $ r# t        j                   d#d       t        d$      t        $ r3}	t        j                   d%d       t        d&t#        |	      z         d }	~	ww xY w# |j[                          w xY w# t        $ rG}	t        j                   d-t9        j:                  |      d       t        d.t#        |	      z         d }	~	ww xY w)3Nz8debugpy.listen() has already been called on this processz2Listening: pydevd without debugpy adapter: {0}:{1}FrE   )hostrW   wait_for_ready_to_runblock_until_connectedr       hexascii   )timeoutz#Can't listen for adapter endpoints:z$can't listen for adapter endpoints: z+Waiting for adapter endpoints on {0}:{1}...r   z--for-serverz--hostz--portz--server-access-tokenz	--log-dirz&debugpy.listen() spawning adapter: {0}win32i   i   r   T)	close_fdscreationflagsenvposixzError spawning debug adapter:rH   rI   zerror spawning debug adapter: rbzutf-8z)Timed out waiting for adapter to connect:z(timed out waiting for adapter to connectz#Error retrieving adapter endpoints:z$error retrieving adapter endpoints: z$Endpoints received from adapter: {0}errorserverr_   rW   clientz%Error parsing adapter endpoints:
{0}
z!error parsing adapter endpoints: z;Adapter is accepting incoming client connections on {0}:{1})r_   rW   r`   ra   access_tokenz)pydevd is connected to adapter at {0}:{1}r'   )2listencalledr*   r   rH   r   
subprocesscodecsencoderO   urandomdecoder   rK   create_serverr   swallow_exceptionrS   get_addressr5   r;   r+   
executabler0   rP   r   rR   r%   r   rM   platformboolPopen_adapter_processnamewait
returncoder   add_dont_terminate_child_pidpidaccept
settimeoutmakefileloadsreadcloseclose_socketsocketrf   int)rU   rZ   in_process_debug_adapterr_   rW   rs   server_access_tokenrX   endpoints_listenerexcendpoints_hostendpoints_portadapter_argsri   
python_envsockrV   sock_io	endpointsserver_hostserver_portclient_hostclient_ports                          r   rq   rq      s   
 }}UVVJD$EtTR38/0 	
"'"'		

 	
 	 --

2>EEgNN113	$229aL
T#)0)<)<=O)P&9	
 
dKK#..1GGOOG,,-I#
 ;;"[#++66L9499\;RS <<7"Z'MZ'M [[-
JJ	L)//+	  0   ww'! !%%' /0 +334D4H4HI
	R(//1GD!+%--a0$ $

7<<>+@+@+I JIMMO$$T* 	  "HH3TYYy5IJ)3y1233K)H-f56)H-f56)H-f56)H-f56 HHE  #"(  HH8+{SFM##w  NCDACHLMMN~  	L!!"AP?#c(JKK	L MMO$$T*~~ 	K!!;6 IJJ 	R!!"GvVECPQQ	R
 	  "  K5IIi 	

 >SIJJKs   ,O :D.S+ )A+P
 Q8 )#Q 2Q	 ?Q Q8 ;AT  	P,PP
	Q.QQS+ 	QQ Q55Q8 8=S(5.S##S((S+ +S= 	U	AUUc                 6    | \  }}t        d||||xs dd| y )Nr   )r_   rW   client_access_tokenppidr'   )r   )rU   rZ   rp   parent_session_pidr_   rW   s         r   connectr   '  s)    JD$v4dK]Kbabvfuvr(   c                   "    e Zd Zd Zed        Zy)wait_for_clientc                     t                t        j                  d       t               }|t	        d      t        j                         }|j                  | _        t        j                  |       y )Nzwait_for_client()z*listen() or connect() must be called first)cancel)r!   r   r   r   r*   	threadingEventr.   r   r   _wait_for_attach)selfpydbcancel_events      r   __call__zwait_for_client.__call__.  sU    		%&"$<KLL ("&&|4r(   c                      t        d      )Nz&wait_for_client() must be called first)r*   r'   r(   r   r   zwait_for_client.cancel:  s    CDDr(   N)r9   
__module____qualname__r   staticmethodr   r'   r(   r   r   r   -  s    
5 E Er(   r   c                  *    t        j                         S N)r   _is_attachedr'   r(   r   is_client_connectedr   B  s      r(   c                     t                t               st        j                  d       y t        j                  d       t               } t        j                         j                  }|K| j                  |      | j                  k(  r-|j                  }|| j                  |      | j                  k(  r-t        ddd|       d }y )Nz,breakpoint() ignored - debugger not attachedzbreakpoint()TF)rD   trace_only_current_threadrE   stop_at_frame)r!   r   r   rH   r   r   r+   	_getframef_backget_file_type
PYDEV_FILEr   )r   r   s     r   
breakpointr   F  s     ?@IIn  DMMO**M!}-@%,, 	!}-@ "&##	 Mr(   c                  Z    t                t        j                  d       t        d       y )Nzdebug_this_thread()F)rD   )r!   r   r   r   r'   r(   r   debug_this_threadr   _  s    II#$er(   c                     t                t        j                  d|        t               }| r|j	                          y |j                          y )Nztrace_this_thread({0!r}))r!   r   r   r   enable_tracingdisable_tracing)should_tracer   s     r   trace_this_threadr   f  s:    II(,7 Dr(   r   )F)NN)&rt   rO   r   r   r+   r   rQ   r   debugpy.commonr   r   r   _pydevd_bundle.pydevd_constantsr   pydevd_file_utilsr   debugpy.common.utilr	   local_tlsr{   r5   r:   r   r   r!   r"   r&   rA   r]   rq   rr   r   r   r   r   r   r   r'   r(   r   <module>r      s   
  	   
    - - ? + 6y nn	 	
A   ;  ,&R W$ W$r  w w
E E$ "#!2r(   