
    ^hTB                        S SK r S SKrS SKrS SKrS SKJr  S SKJrJrJ	r	J
r
Jr  S\R                  ;   d   eS SKrS SKJr  S SKrS SKrS SKJrJr  S SKJr  \S   rS	rS
R3                  \R4                  \5      r " S S\5      r\" 5       rSSS.\l        S r \ " \!S S5      r"S r#S r$S 4S jr%S r&S r'S r(S S4S\4S jjr)SS\#4SS\$4SS\%" S 5      4S!S\&" S"S5      4S#S$\'" S%5      4S&S$\'" S'5      4S(S\&" S)S5      4S*S+\(4S,S-\%" S.S/ 5      4S0S1\%" S25      4S3S4\)" S5SS694S7S8\)" S95      4S:S;\)" S<5      4S=S-\)" S>\"5      4/r*S? r+S@\,4SA jr-SB r.SC\/4SD jr0SE\/4SF jr1\/" 5       S4S@\,SE\/SG\/4SH jjr2SI r3SJ r4SK r5SL r6SM r7SN r8g)O    N)	find_spec)AnyUnionTupleDictLiteralpydevd)pydevd_runpy)logsockets)apifilemodulecodepidz2<filename> | -m <module> | -c <code> | --pid <pid>a  debugpy {0}
See https://aka.ms/debugpy for documentation.

Usage: debugpy --listen | --connect
               [<host>:]<port>
               [--wait-for-client]
               [--configure-<name> <value>]...
               [--log-to <path>] [--log-to-stderr]
               [--parent-session-pid <pid>]]
               [--adapter-access-token <token>]
               {1}
               [<arg>]...
c                       \ rS rSr% Sr\\S   S4   \S'   Sr\\	\
\4   S4   \S'   SrSrSr\\
S4   \S'   Sr\\S4   \S'   SrSr0 r\\
\4   \S	'   Sr\\S4   \S
'   Srg)Options0   N)connectlistenmodeaddressFtargettarget_kindconfigparent_session_pid )__name__
__module____qualname____firstlineno__r   r   r   __annotations__r   r   strintlog_tolog_to_stderrr   r   
TargetKindwait_for_clientadapter_access_tokenr   r   r   r   __static_attributes__r       L/home/james-whalen/.local/lib/python3.13/site-packages/debugpy/server/cli.pyr   r   0   s    6:D%+,d2
3:,0GU5c?D()0FM#FE#t)#+/Kz4'(/OFDcN+/c4i(/r,   r   noneT)qt
subProcessc                    ^ ^^ U UU4S jnU$ )Nc                    > T" U 5      nTb   UT:  a  [        SR                  T5      5      eTb   UT:  a  [        SR                  T5      5      eU$ )Nzmust be >= {0}zmust be < {0})
ValueErrorformat)snparserstartstops     r-   parsein_range.<locals>.parseB   sV    1IU-44U;<<T	_33D9::r,   r   )r7   r8   r9   r:   s   ``` r-   in_ranger<   A   s     Lr,   c                 h    [        [        [        R                  S9  [        R                  " S5        g )Nr   r   )printHELPsysstderrexitswitchits     r-   print_help_and_exitrG   P   s    	$SZZ HHQKr,   c                 b    [        [        R                  5        [        R                  " S5        g Nr   )r?   debugpy__version__rA   rC   rD   s     r-   print_version_and_exitrL   U   s    	'

HHQKr,   c                     U $ Nr   xs    r-   <lambda>rQ   Z   s    qr,   c                    ^ ^ UU 4S jnU$ )Nc                 J   > T" [        U5      5      n[        [        TU5        g rN   )nextsetattroptions)argrF   valuer7   varnames      r-   doset_arg.<locals>.do[   s    tBx %(r,   r   )rY   r7   rZ   s   `` r-   set_argr\   Z   s    ) Ir,   c                    ^ ^ UU 4S jnU$ )Nc                 (   > [        [        TT5        g rN   )rU   rV   )rW   rF   rX   rY   s     r-   rZ   set_const.<locals>.doc   s    %(r,   r   )rY   rX   rZ   s   `` r-   	set_constr`   b   s    ) Ir,   c                    ^  U 4S jnU$ )Nc                 x  > [         R                  b  [        S5      e[        U5      nUR	                  S5      u  p4nUR                  S5      nU(       d  [        R                  " 5       nUn [        U5      nSUs=::  a  S:  d  O  [        S5      eT[         l
        X54[         l        g ! [         a    Sn N@f = f)Nz---listen and --connect are mutually exclusive:z[]r   i   zinvalid port number)rV   r   r3   rT   
rpartitionstripr   get_default_localhostr%   	Exceptionr   )rW   rF   rX   hostsepportr   s         r-   rZ   set_address.<locals>.doj   s    ??&LMM R**3/4zz$002DD	t9D T!E!233,  	D	s   -B* *B98B9r   )r   rZ   s   ` r-   set_addressrm   i   s    '* Ir,   c                    SnU R                  U5      (       d   eU [        U5      S  n[        U5      nU[        R                  ;  a  [        SR                  U5      5      e[        [        R                  U   5      n U[        L a  SSS.UR                  5          nO	U" U5      n U[        R                  U'   g ! [         a%    [        SR                  X5R                  5      5      ef = f)Nz--configure-zunknown property {0!r}TF)truefalsez{0!r} must be a {1})
startswithlenrT   rV   r   r3   r4   typeboollowerrh   r   )rW   rF   prefixnamerX   expected_types         r-   
set_configry      s    F>>&!!!!s6{}DHE7>>!188>??-.MUD !E25;;=AE!%(E !GNN4  U.55d<R<RSTTUs   ?B< B< </C+c                     U $ rN   r   rO   s    r-   rQ   rQ      s    1r,   Fkindc                    ^ ^^ U UU4S jnU$ )Nc                   > T[         l        T" T(       a  U O
[        U5      5      n[        U[        5      (       a%   UR                  [        R                  " 5       5      nU[         l        g ! [         aJ     UR                  S5      n N*! [         a(    SS K	nUR                  UR                  S5      5      n  N[f = ff = f)Nutf-8r   F)rV   r   rT   
isinstancebytesdecoderA   getfilesystemencodingUnicodeDecodeErrorlocalegetpreferredencodingr   )rW   rF   r   r   r{   r7   
positionals       r-   rZ   set_target.<locals>.do   s    "ztBx8fe$$Os'@'@'BC   & OO#]]73F) O!#]]6+F+Fu+MNFOOs)   $A- -
C8B.B=9C<B==Cr   )r{   r7   r   rZ   s   ``` r-   
set_targetr      s     $ Ir,   z-(\?|h|-help)z-(V|-version)z--log-toz<path>r&   z--log-to-stderrr'   z--listenz	<address>r   z	--connectr   z--wait-for-clientr)   z--configure-.+z<value>z--parent-session-pidz<pid>r   c                 *    U (       a  [        U 5      $ S $ rN   )r%   rO   s    r-   rQ   rQ      s    fg\_`a\b\qmq\qr,   z--adapter-access-tokenz<token>r*    z
<filename>r   )r   z-mz<module>r   -cz<code>r   z--pidr   c               #      #    [        [        R                  5      S:  aH  [        R                  S   n [        R                  S	 U v   [        [        R                  5      S:  a  MG  g g 7f)N      )rr   rA   argv)rX   s    r-   consume_argvr      sD     
chh-1
HHQK chh-1
s   A#A)'A)argsc              #      #    U [         R                  L a  [        5        S h  vN   g U (       a  U S   nU S	 Uv   U (       a  M  g g  N#7frI   )rA   r   r   )r   rX   s     r-   consume_argsr      s@     sxx>!!GEQK d 	"s   !A	AA	A	c                  ^   [        5       n [        U 5        [        U 5        [        R                  b  [        R                  S:X  a  [        S[        -   5      e[        R                  c  [        S5      e[        R                  b  [        R                  S:w  a  [        S5      e[        R                  b  [        R                  S:w  a  [        S5      e[        R                  S:X  a   [        R                  (       a  [        S5      e[        R                  c   e[        R                  c   eg )	Nr   zmissing target: z(either --listen or --connect is requiredr   z)--adapter-access-token requires --connectz'--parent-session-pid requires --connectr   z(--pid does not support --wait-for-client)setparse_args_from_command_lineparse_args_from_environmentrV   r   r3   TARGETr   r*   r   r   r)   r   seens    r-   
parse_argsr      s     5D &% ~~2!5+f455||CDD##/GLLI4MDEE!!-',,)2KBCCe#(?(?CDD***??&&&r,   r   c                 8    [        [        R                  U 5        g rN   )parse_args_helperrA   r   r   s    r-   r   r      s    chh%r,   seenFromCommandLinec                     [         R                  R                  S5      nU(       d  g UR                  5       n[	        5       n[        X US5        g )NDEBUGPY_EXTRA_ARGVT)osenvirongetsplitr   r   )r   r   argsListseenFromEnvironments       r-   r   r      s;    ::>>./Dzz|H%h5H$Or,   r   c                    [        U 5      n  [        U5      nUnUR                  S5      (       d  Sn[         H*  u  pxn	[
        R                  " SU-   S-   U5      (       d  M*    O   [        SU-   5      eU(       d  Xa;   a  [        SU-   5      eU(       a  Xb;   a  [        SU-   5      eU(       a  Xa;   a  M  U(       a  UR                  U5        OUR                  U5         U	" XT5        U(       d  [        R                  b  g M  ! [         a     g f = f! [         a     Uc   e[        SR                  Xh5      5      e[         a   n
[        S	R                  XhU
5      5      eS n
A
ff = f)
N-r   z^(z)$zunrecognized switch z"duplicate switch on command line: z#duplicate switch from environment: z{0}: missing {1}zinvalid {0} {1}: {2})r   rT   StopIterationrq   switchesrematchr3   addr4   rh   rV   r   )r   r   r   isFromEnvironmentiteratorrW   rE   patternplaceholderactionexcs              r-   r   r     sm    D!H
	x.C   %%F,4(G&xxw-v66 -5 3f<== !V%BAFJKK6#@BVKLL6#@ !#''/#''/	V3! !W^^%?Y   		>  	M***/66vKLL 	V3::6PSTUU	Vs)   D "D 
DD2E'E""E'c                 "   U [         R                  S'   [        R                  " S[         R                  5        [        R
                  " [        R                  5        [        R                  R                  SS5      S:w  a  [        R                  S:X  a6  [        R                  b%  [        R                  " [        R                  5        O[        R                  S:X  aR  [        R                  bA  [        R                  " [        R                  [        R                  [        R                   S9  O"[#        [%        [        R                  5      5      e[        R&                  (       a  [        R&                  " 5         S[        R                  S'   g )	Nr   zsys.argv after patching: {0!r}DEBUGPY_RUNNINGrp   ro   r   r   )access_tokenr   )rA   r   r   debugrJ   	configurerV   r   r   r   r   r   r   r   r   r*   r   AssertionErrorreprr)   )argv_0s    r-   start_debuggingr   <  s     CHHQKII.9gnn%	zz~~'1V;<<8#(CNN7??+\\Y&7??+FOOGOO':V:Vkr  lF  lF  G gll!344""##%$*BJJ !r,   c                     [         R                  n [        U 5        U bd  [        R                  R                  U 5      (       a@  [        R                  R                  U 5      n[        R                  R                  SU5        O[        R                  " SU 5        [        R                  " S5        [        R                  " SU 5        [        R                  " U SS9  g )Nr   zNot a file: {0!r}Pre-launch environment:zRunning file {0!r}__main__)run_name)rV   r   r   r   pathisfiledirnamerA   insertr   r   describe_environmentinforunpyrun_path)r   dirs     r-   run_filer   T  s    ^^FF bggnnV44ggoof%3		%v.67HH!6*	NN6J/r,   c                     [         R                  R                  S[        S5      5        [         R                  S   n  [
        R                  c  S O[        [
        R                  5      nUb  UR                  n [        U 5        [        R                  " S5        [        R                  " S[
        R                  5         [        R                   nU" [
        R                  SS9  g ! [         a    [        R                  " S5         Nf = f! ["         a<    [        R$                  " S5        [        R&                  " [
        R                  SS	9   g f = f)
Nr   r   z*Error determining module path for sys.argvr   zRunning module {0!r}T)
alter_argvzArunpy._run_module_as_main is missing, falling back to run_module.)	alter_sys)rA   r   r   r$   r   rV   r   r   originrh   r   swallow_exceptionr   r   r   r   _run_module_as_mainAttributeErrorwarning
run_module)r   specrun_module_as_mains      r-   r   r   i  s     HHOOAs2w XXa[FL~~-t9W^^3L[[F F67HH#W^^4<"66
 	7>>d;%  LJKL  9WX489s$   ;C&  D & D	D	AEEc                     [         R                  b  [        R                  R	                  S[        S5      5        [        [         R                  [        S5      [        S5      5      n [        [        S5      5        [        R                  " S5        [        R                  " S[         R                  5        [        U 0 5        g [        R                  " S5        g )	Nr   r   z<string>execr   r   zRunning code:

{0}zNo target to run.)rV   r   rA   r   r   r$   compiler   r   r   r   evalerror)r   s    r-   run_coder     s    ~~!3r7#w~~s:FDD	"  !:;'8T2		%&r,   c                     [         R                  n [        R                  " SU 5        S n[        R
                  R                  [        R                  R                  5      n[        R
                  R                  U5      (       d   eU" U5      n[         R                  [         R                  [         R                  [         R                  [         R                  S.nU" [         R"                  " U5      5      nSnUR%                  SS5      R%                  SS5      R'                  X#S9n[        R                  " S	UR%                  S
S5      5        1 Sk[)        U5      -  (       a   S5       e[        R
                  R+                  [        R
                  R                  [,        R                  5      S5      n[        R
                  R                  U5      (       d   e[.        R
                  R1                  U5         SS Kn[        R                  " SU 5        UR5                  U US[7        [        R8                  " SS5      5      S9  [        R                  " SU 5        g ! [:         a    [        R<                  " SU 5         N;f = f)Nz!Attaching to process with PID={0}c                 R    U b#  [        [        U R                  S5      5      5      $ S $ )Nr~   )list	bytearrayencode)r5   s    r-   rQ   attach_to_pid.<locals>.<lambda>  s$    Q]tIahhw&789TPTTr,   )r   r   r)   r&   r*   a9  
import codecs;
import json;
import sys;

decode = lambda s: codecs.utf_8_decode(bytearray(s))[0] if s is not None else None;

script_dir = decode({script_dir});
setup = json.loads(decode({setup}));

sys.path.insert(0, script_dir);
import attach_pid_injected;
del sys.path[0];

attach_pid_injected.attach(setup);
r   
)
script_dirsetupzCode to be injected: 
{0};z;
>   r   r   "'zOInjected code should not contain any single quotes, double quotes, or newlines.pydevd_attach_to_processr   z,Injecting code into process with PID={0} ...T DEBUGPY_ATTACH_BY_PID_DEBUG_INFO0)connect_debugger_tracingshow_debug_infoz#Code injection into PID={0} failed:z&Code injection into PID={0} completed.)rV   r   r   r   r   r   r   rJ   server__file__existsr   r   r)   r&   r*   jsondumpsreplacer4   r   joinr	   rA   appendadd_code_to_python_processrun_python_coder%   getenvrh   reraise_exception)r   r   r   r   python_codepydevd_attach_to_process_pathr   s          r-   attach_to_pidr     s   
..CHH0#6TF!8!89J77>>*%%%%
#J ??"22.. ' < <E 4::e$%EK" 	D"%	r		:	3 
 HH);+>+>sE+JK 	[!11YXY  %'GGLL
(*D%! 77>>78888HHOO12J)?E"22%)		*Lc RS	 	3 	
 HH5s;  JCSIJs   ?AI" "!JJc                  x   [        [        R                  5      n  [        5         [        R                  b$  [        R                  " [        R                  5        [        R                  (       a$  [        R                  " [        R                  5        [        R                  " 5         [         R"                  " [        S5      U [        R                  5         [        R$                  b0  [&        [(        [*        [,        S.[        R$                     nU" 5         g g ! [         a^  n[        [        [        5      [        S5      -   [        U5      -   [        R                  S9  [        R                  " S5         S nAGNXS nAff = f! [.         a*  n[         R0                  " SUR2                  SS9   S nAg S nAff = f)	Nz
Error: r>   r   z=sys.argv before parsing: {0!r}
         after parsing:  {1!r}r   z%Debuggee exited via SystemExit: {0!r}r   )level)r   rA   r   r   rh   r?   r$   r@   rB   rC   rV   r&   rJ   r'   r   ensure_loggingr   r   r   r   r   r   r   
SystemExitr   r   )original_argvr   runs      r-   mainr    s'   NM
 ~~!w~~&szz"HHOP
* $ $	
 !!#C E +%  c$i#k**SX5CJJG4  
3SXXW	

s1   
D A F 
F$AE==F
F9 F44F9)9r   r   r   rA   importlib.utilr   typingr   r   r   r   r   modulesr	   _pydevd_bundler
   r   rJ   debugpy.serverdebugpy.commonr   r   r   r(   r   r4   rK   r@   objectr   rV   r   r<   r%   r   rG   rL   r\   r`   rm   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r,   r-   <module>r     s<  
  	 	 
 $ 3 3
 3;;   1   ' 45
	= F $
0f 
0 )d3	 sAt

 ) 2!* *5% Z 8 4GH4JKGH4EFIot4TUK4IJK	4JKI>OQU4VW	J?G<PRq4rsG<R4ST JvRV4WX	
Jx4HI	Jv4FGJuc4JK+6t '2&s &PS P  #u	4
44 4n+00*<B' B<J!
r,   