o
    i`                     @   sX   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ dd Zdd Z	d	d
 Z
dS )    N)launcher)json)debuggeec                    s  t dtt  fdd}dtjtdd}t|}dtdstjd d	 d
kr6|ddg7 }dt}|t	j
tjdtjd t| g7 }ddsY|ddg7 }dtjdddddddd}|d|g7 }dtdd}|dkr|d|g7 }d tt}||7 }|tjd!d  7 }d"tj}t	j }	d#tttd f}
tjd$krd%d& t	j D }	i }|
 D ]\}}| }||v r|| |krqd'||||< q|}
d(|	v r|	d)d  |	|
 d*d& |	 D }	d+drd,|	d-< d.tjd/d0d1dd}|d2d3}|d u r|d/k}|r)d4|	d5< d6|	d7< |d8d9rA|d/kr9d:tj d;d<  |d=d>rY|d/krQd?tj d@d<  t!|||	| i S )ANdebugOptionsc                    sh   | d   r|d  sJ | tdd}|dkrd }| v r2|du r0dt| t|d}|S )Nr   Toptional Fz9{0}:false and "debugOptions":[{1}] are mutually exclusive)islowerisupperbool
isnt_validr   repr)	prop_name	flag_namevaluedebug_optionsrequestr   T/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/debugpy/launcher/handlers.pyproperty_or_debug_option   s   z0launch_request.<locals>.property_or_debug_optionpython)   )sizenoDebugF   )      z-Xzfrozen_modules=offportz	--connect:
subProcessTz--configure-subProcessFalseqtnoneautopysidepyside2pyqt4pyqt5r   z--configure-qtadapterAccessTokenr   z--adapter-access-tokendebugpyArgsr   processNameenvwin32c                 S   s   i | ]	\}}|  |qS r   )upper.0kvr   r   r   
<dictcomp>T   s    z"launch_request.<locals>.<dictcomp>zFound duplicate in "env": {0}.DEBUGPY_TESTCOV_CORE_SOURCEc                 S   s   i | ]\}}|d ur||qS Nr   r.   r   r   r   r2   f   s    geventTrueGEVENT_SUPPORTconsoleinternalConsoleintegratedTerminalexternalTerminalredirectOutputRedirectOutput1PYTHONUNBUFFEREDzutf-8PYTHONIOENCODINGwaitOnNormalExitWaitOnNormalExitzC"waitOnNormalExit" is not supported for "console":"internalConsole"c                 S   s   | dkS Nr   r   coder   r   r   <lambda>       z launch_request.<locals>.<lambda>waitOnAbnormalExitWaitOnAbnormalExitzE"waitOnAbnormalExit" is not supported for "console":"internalConsole"c                 S   s   | dkS rD   r   rE   r   r   r   rG      rH   )"setr   arraystrlistdefaultsysversion_infointospathdirnamedebugpy__file__r   adapter_hostenumargv
executableenvironcopyobjecttypeplatformitemsr-   r   formatpopupdater   wait_on_exit_predicatesappendspawn)r   r   r   cmdliner   qt_modeadapter_access_tokendebugpy_argsprocess_namer+   env_changesnew_env_changesr0   r1   k_upperr9   redirect_outputr   r   r   launch_request   s   









rq   c                 C   s"   t jd d = | i  t   d S r5   )r   re   respondkill)r   r   r   r   terminate_request   s   
rt   c                   C   s   t jd d = t   d S r5   )r   re   rs   r   r   r   r   
disconnect   s   ru   )rS   rP   rV   r   debugpy.commonr   debugpy.launcherr   rq   rt   ru   r   r   r   r   <module>   s    