
    Vf.                     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e_        d Zde_        d ZddZd Zedd       Z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 |S # t        $ r  w xY w)Nz pydevd.settrace(*{0!r}, **{1!r})notify_stdinF)r   debug
setdefaultpydevdsettrace	_settracecalled	Exception)argskwargss     [/var/www/html/software/conda/envs/catlas/lib/python3.12/site-packages/debugpy/server/api.pyr   r   (   sN    II0$?
ne, /// s   A   AFc                      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"   7   sW    !NKK'(34
{{ckk$99: r)   c                    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'   E   sW    677IImdW%szz

S_,r)   c                 :   t         j                  rt        d      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 debug adapter is already runningz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+   r"   r   r   dictupdateitems_config
ValueErrorformattype__name___config_valid_valuesget)
propertiesr   kvexpected_typevalid_valuess         r   	configurerB   P   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                 n   t         j                  rt        d      	 | \  }}	 |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<   t1        d      f|d<   	  | |fi |S # t        $ r
 | }d|f} Y Gw xY w# t        $ r t        d      w xY w# t        $ r% t        j2                  dj                  d       Y y w xY w)Nz(this process already has a debug adapter	127.0.0.1z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   r+   r   	__index__r7   r"   r   r   r:   rJ   r   reprr6   r<   r   enable_qt_supportr	   osr1   dirnamer   debugpy__file__strreraise_exception)addressr   _portqt_modesettrace_kwargsdebugpy_pathfuncs          r   r   z _starts_debugging.<locals>.debugj   s   IJJ	*GAt	>NN T#G#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"D)G	*
  	><==	>2  	P!!/4==O	Ps.   E E. 	F E+*E+.F+F43F4r(   )r\   r   s   ` r   _starts_debuggingr]   i   s    %PN Lr)   c           
      (
   |r2| \  }}t        j                  d||       d|d<   t        d2||ddd| y dd l}t	        j
                  t        j                  d      d      j                  d      }	 t        j                  d	dd
      }	 |j                         \  }	}
t        j                  d|	|
       | \  }}t         j#                  dt$        j&                        t        j(                  j+                  t,        j.                        dt        |
      d|dt        |      d|g
}t         j0                  |dt         j0                  gz  }t        j                  dt3        j4                  |             d}t$        j6                  dk(  r
|dz  }|dz  }t         j#                  d      }t9        |      sd }	 |j;                  |d||      at        j>                  dk(  rt<        jA                          n.dt<        _!        tE        jF                  t<        jH                         	 |jK                         \  }}	 |jM                  d        |jO                  d!d      }	 t3        jP                  |jS                         j                  d"            }|jU                          	 t        jV                  |       	 |jU                          t        j                  d't3        j4                  |             d(|v rt        t        |d(               	 t        |d)   d*         }t]        |d)   d+         }t        |d,   d*         }t]        |d,   d+         }t        j                  d/||       t        d2||dd|d0| t        j                  d1||       ||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# |jU                          w xY w# t        jV                  |       w xY w# tX        jZ                  $ r# t        j                  d#d       t        d$      t        $ r3}t        j                  d%d       t        d&t        |      z         d }~ww xY w# |jU                          w xY w# t        $ rG}t        j                  d-t3        j4                  |      d       t        d.t        |      z         d }~ww xY w)3Nz2Listening: pydevd without debugpy adapter: {0}:{1}FrG   )hostrX   wait_for_ready_to_runblock_until_connectedr       hexasciirE   
   )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:rJ   rK   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_   rX   clientz%Error parsing adapter endpoints:
{0}
z!error parsing adapter endpoints: z;Adapter is accepting incoming client connections on {0}:{1})r_   rX   r`   ra   access_tokenz)pydevd is connected to adapter at {0}:{1}r(   )/r   rJ   r   
subprocesscodecsencoderP   urandomdecoder   create_serverr   swallow_exceptionr+   rT   getsocknamer6   r<   r,   
executabler1   rQ   r   rS   r&   r   rN   platformboolPopen_adapter_processnamewait
returncoder   add_dont_terminate_child_pidpidaccept
settimeoutmakefileloadsreadcloseclose_socketsocketrf   int)rV   rZ   in_process_debug_adapterr_   rX   rq   server_access_tokenendpoints_listenerexcendpoints_hostendpoints_portadapter_argsri   
python_envsockrW   sock_io	endpointsserver_hostserver_portclient_hostclient_ports                         r   listenr      s   
  
dEtTR38/0 	
"'"'		

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

2>EEgNN$22;2N
Q#);)G)G)I&9	
 
dKK#..1GGOOG,,-I#
 ;;"[#++66L9499\;RS <<7"Z'MZ'M [[-
JJ	L)//Mz  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##o  NCDACHLMMNx  	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   2N D)R, 5A+O !P9 5#P 2P
 P P9 AS 	O,OO	P.PPR, 
PP P66P9 9=R)6.R$$R))R, ,R>	T
ATTc                 ,    | \  }}t        d|||d| y )N)r_   rX   client_access_tokenr(   )r   )rV   rZ   rp   r_   rX   s        r   connectr   &  s    JD$X4dXXr)   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.cancel9  s    CDDr)   N)r:   
__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   A  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)rF   trace_only_current_threadrG   stop_at_frame)r"   r   r   rJ   r   r   r,   	_getframef_backget_file_type
PYDEV_FILEr   )r   r   s     r   
breakpointr   E  s     ?@IIn  DMMO**M!}-@%,, 	!}-@ "&##	 Mr)   c                  Z    t                t        j                  d       t        d       y )Nzdebug_this_thread()F)rF   )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   e  s:    II(,7 Dr)   r   )F)&rr   rP   r   r   r,   r   rR   r   debugpy.commonr   r   r   _pydevd_bundle.pydevd_constantsr   pydevd_file_utilsr   debugpy.common.utilr	   local_tlsry   r6   r;   r}   r   r   r"   r#   r'   rB   r]   r   r   r   r   r   r   r   r(   r)   r   <module>r      s   
  	   
    - - ? + 6y nn	 	
A   	  	 ;  2(V N$ N$b Y Y
E E$ "#!2r)   