o
    à›hx/  ã                   @   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   úHc:\Users\shubh\Videos\agent\nova\Lib\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|ƒs¶d }z|j|d||d�a t	j!dkrÊt  "¡  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   ü
ý

( 