o
    à›hø  ã                   @   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¡ƒs‹t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râd%d&„ t	j ¡ D ƒ}	i }|
 ¡ D ]\}}| ¡ }||v rÛ|| |krÓqÀˆ 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 )ANZ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)Z	prop_nameZ	flag_nameÚvalue©Zdebug_optionsÚrequestr   úOc:\Users\shubh\Videos\agent\nova\Lib\site-packages\debugpy/launcher/handlers.pyÚproperty_or_debug_option   s   ýz0launch_request.<locals>.property_or_debug_optionÚpython)é   )ÚsizeZnoDebugFé   )é   é   z-Xzfrozen_modules=offÚportz	--connectú:Z
subProcessTz--configure-subProcessÚFalseZqtÚnoneÚautoZpysideZpyside2Zpyqt4Zpyqt5r   z--configure-qtZadapterAccessTokenr   z--adapter-access-tokenZ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}.ZDEBUGPY_TESTZCOV_CORE_SOURCEc                 S   s   i | ]\}}|d ur||“qS ©Nr   r!   r   r   r   r%   f   s    ZgeventÚTrueZGEVENT_SUPPORTÚconsoleZinternalConsoleZintegratedTerminalZexternalTerminalZredirectOutputZRedirectOutputÚ1ZPYTHONUNBUFFEREDzutf-8ÚPYTHONIOENCODINGZwaitOnNormalExitZ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>ZwaitOnAbnormalExitZWaitOnAbnormalExitzE"waitOnAbnormalExit" is not supported for "console":"internalConsole"c                 S   s   | dkS r+   r   r,   r   r   r   r.   Š   r/   )"Úsetr   ÚarrayÚstrÚlistÚdefaultÚsysÚversion_infoÚintÚosÚpathÚdirnameÚdebugpyÚ__file__r   Zadapter_hostÚenumÚargvÚ
executableÚenvironÚcopyÚobjectÚtypeÚplatformÚitemsr    r   ÚformatÚpopÚupdater   Úwait_on_exit_predicatesÚappendZspawn)r   r   r   Zcmdliner   Zqt_modeZadapter_access_tokenZdebugpy_argsZprocess_namer   Zenv_changesZnew_env_changesr#   r$   Zk_upperr(   Zredirect_outputr   r   r   Úlaunch_request   s˜   
ý
ÿþ

ÿ

ÿþ


ÿ
ÿrK   c                 C   s"   t jd d …= |  i ¡ t  ¡  d S r&   )r   rI   ZrespondÚkill)r   r   r   r   Úterminate_request�   s   
rM   c                   C   s   t jd d …= t  ¡  d S r&   )r   rI   rL   r   r   r   r   Ú
disconnect–   s   rN   )r8   r5   r;   r   Zdebugpy.commonr   Zdebugpy.launcherr   rK   rM   rN   r   r   r   r   Ú<module>   s    