o
    [Zh.                     @   s.  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 Zddeji d	Zd
g diZdadd Zdd Zde_dd Zd%ddZdd Zed&ddZde_ed%ddZ G dd dZ!e! Z!dd Z"dd  Z#d!d" Z$d#d$ Z%dS )'    N)adapter)jsonlogsockets)get_global_debugger)absolute_path)hide_debugpy_internalsnoneT)qt
subProcesspython	pythonEnvr
   )autor	   ZpysideZpyside2Zpyqt4Zpyqt5c                  O   sB   t d| | |dd ztj| i | W d S  ty     w )Nz pydevd.settrace(*{0!r}, **{1!r})Znotify_stdinF)r   debug
setdefaultpydevdsettrace	Exception)argskwargs r   I/var/www/html/lang_env/lib/python3.10/site-packages/debugpy/server/api.py	_settrace(   s   r   c                   C   sH   t jrdS dt _tjdd td tjdur"ttjd  dS dS )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   Zto_fileZdescribe_environmentlog_dirr   log_tor   r   r   r   r   2   s   

r   Fc                 C   sJ   t jrtdtd| f | tju r tj jttj	O  _d S | t_
d S )Nzlogging has already begunzlog_to{0!r})r   r   RuntimeErrorr   r   sysstderrZlevelssetZLEVELSr   )pathr   r   r   r   @   s   

r   c                 K   s   t   td| |f | d u r|} n	t| } | | |  D ]=\}}|tvr.td|t	t| }t	||urCtd||j
t|}|d urX||vrXtd|||t|< qd S )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_typeZvalid_valuesr   r   r   	configureK   s"   


r1   c                    s    fdd}|S )Nc                    s:  z| \}}W n t y   | }d|f} Y nw z|  W n t y'   tdw d|  kr5dk s:td tdt  td j| | tdt	t
 t
dd	}|d	kr^t| d
t
ddd}t rtjttj}|f|d< tdf|d< z
 | |fi |W S  t y   tjd jdd Y d S w )N	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_multiprocessingZdont_trace_start_patternszdebugpy_launcher.pyZdont_trace_end_patternsz{0}() failed:infolevel)r   	__index__r'   r   r   r   r*   r5   r   reprr&   r,   r   Zenable_qt_supportr   osr"   dirnamer   debugpy__file__strZreraise_exception)addressr   _portZqt_modesettrace_kwargsZdebugpy_pathfuncr   r   r   b   sB   


z _starts_debugging.<locals>.debugr   )rD   r   r   rC   r   _starts_debugginga   s   $rE   c              
   C   s  t jrtd|r&| \}}td|| d|d< td3||ddd| d S dd l}tt	
ddd	}z
tjd
ddd}W n tyY } ztd tdt| d }~ww z| \}	}
td|	|
 | \}}tdtjt	jtjdt|
d|dt|d|g
}tjd ur|dtjg7 }tdt| d}tjdkr|dO }|dO }td}t|sd }z|j|d||da t	j!dkrt "  n	dt _#t$%t j& W n ty } ztjddd  td!t| d }~ww z7|' \}}z(|(d  |)d"d}zt*|+ d#}W |,  n|,  w W t-| nt-| w W n/ t.j/y;   tjd$dd  td% tyV } ztjd&dd  td't| d }~ww W |,  n|,  w td(t| d)|v rxtt|d) z"t|d* d+ }t0|d* d, }t|d- d+ }t0|d- d, }W n  ty } ztjd.t|dd  td/t| d }~ww td0|| td3||dd|d1| td2|| dt _||fS )4Nz8debugpy.listen() has already been called on this processz2Listening: pydevd without debugpy adapter: {0}:{1}Fr4   )hostrA   wait_for_ready_to_runblock_until_connectedr       hexasciir2      )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:r5   r6   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serverrF   rA   clientz%Error parsing adapter endpoints:
{0}
z!error parsing adapter endpoints: z;Adapter is accepting incoming client connections on {0}:{1})rF   rA   rG   rH   access_tokenz)pydevd is connected to adapter at {0}:{1}r   )1listencalledr   r   r5   r   
subprocesscodecsencoder:   urandomdecoder   create_serverr   Zswallow_exceptionr>   getsocknamer&   r,   r   
executabler"   r;   r   r=   r   r   r9   platformboolPopen_adapter_processnamewait
returncoder   Zadd_dont_terminate_child_pidpidaccept
settimeoutmakefileloadsreadcloseZclose_socketsocketrM   int)r?   rB   Zin_process_debug_adapterrF   rA   rZ   Zserver_access_tokenZendpoints_listenerexcZendpoints_hostZendpoints_portZadapter_argsrP   Z
python_envsockr@   Zsock_ioZ	endpointsZserver_hostZserver_portZclient_hostZclient_portr   r   r   rX      s   







rX   c                 C   s"   | \}}t d|||d| d S )N)rF   rA   Zclient_access_tokenr   )r   )r?   rB   rW   rF   rA   r   r   r   connect%  s   rt   c                   @   s    e Zd Zdd Zedd ZdS )wait_for_clientc                 C   sF   t   td t }|d u rtdt }|j| _t	j
|d d S )Nzwait_for_client()z*listen() or connect() must be called first)cancel)r   r   r   r   r   	threadingEventr!   rv   r   Z_wait_for_attach)selfpydbZcancel_eventr   r   r   __call__,  s   
zwait_for_client.__call__c                   C   s   t d)Nz&wait_for_client() must be called first)r   r   r   r   r   rv   8  s   zwait_for_client.cancelN)r*   
__module____qualname__r{   staticmethodrv   r   r   r   r   ru   +  s    ru   c                   C   s   t  S N)r   Z_is_attachedr   r   r   r   is_client_connected@  s   r   c                  C   s   t   t std d S td t } t j}|d ur5| 	|| j
kr5|j}|d ur5| 	|| j
ks&tddd|d d }d S )Nz,breakpoint() ignored - debugger not attachedzbreakpoint()TF)r3   Ztrace_only_current_threadr4   stop_at_frame)r   r   r   r5   r   r   r   	_getframef_backZget_file_typeZ
PYDEV_FILEr   )rz   r   r   r   r   
breakpointD  s&   


r   c                   C   s   t   td tdd d S )Nzdebug_this_thread()F)r3   )r   r   r   r   r   r   r   r   debug_this_thread]  s   
r   c                 C   s4   t   td|  t }| r|  d S |  d S )Nztrace_this_thread({0!r}))r   r   r   r   Zenable_tracingZdisable_tracing)Zshould_tracerz   r   r   r   trace_this_threadd  s   r   r   )F)&r[   r:   r   rp   r   rw   r<   r   Zdebugpy.commonr   r   r   Z_pydevd_bundle.pydevd_constantsr   Zpydevd_file_utilsr   Zdebugpy.common.utilr   localZ_tlsra   r&   r+   re   r   r   r   r   r1   rE   rX   rY   rt   ru   r   r   r   r   r   r   r   r   <module>   sN   


( 