
    "e                        d dl Z d dlZ G d d      Z G d d      Zd Z eded        eded        ed	       ed
       ed       ed       ed       ed       ed       eded       ed       ed       ed       ed       ed       ed       ed       ed       ed       ed       ed       ed       ed       ed      gZi ZeD ]  Zeeej                  <    d Z
d"d Zd! Zy)#    Nc                   $    e Zd ZdZddZd Zd Zy)ArgHandlerWithParamz8
    Handler for some arguments which needs a value
    Nc                 B    || _         d|| _        || _        || _        y Nz--)arg_name	arg_v_repconvert_valdefault_val)selfr   r	   r
   s       M/usr/lib/python3/dist-packages/_pydevd_bundle/pydevd_command_line_handling.py__init__zArgHandlerWithParam.__init__
   s#     #+-&&    c                     |j                  | j                        }|>|| j                  k7  r.|j                  | j                         |j                  |       y y y N)getr   r
   appendr   r   lstsetupvs       r   to_argvzArgHandlerWithParam.to_argv   sI    IIdmm$=Q$"2"22JJt~~&JJq# 3=r   c                     ||   | j                   k(  sJ ||= ||   }| j                  r| j                  |      }||| j                  <   ||= y r   )r   r	   r   )r   argvir   vals        r   handle_argvzArgHandlerWithParam.handle_argv   sV    Aw$..(((G1g""3'C"dmmGr   )NN__name__
__module____qualname____doc__r   r   r    r   r   r   r      s    '$	r   r   c                   $    e Zd ZdZddZd Zd Zy)ArgHandlerBoolzB
    If a given flag is received, mark it as 'True' in setup.
    c                 4    || _         d|| _        || _        y r   )r   r   r
   )r   r   r
   s      r   r   zArgHandlerBool.__init__'   s     #+-&r   c                 v    |j                  | j                        }|r|j                  | j                         y y r   )r   r   r   r   r   s       r   r   zArgHandlerBool.to_argv,   s,    IIdmm$JJt~~& r   c                 P    ||   | j                   k(  sJ ||= d|| j                  <   y )NT)r   r   )r   r   r   r   s       r   r   zArgHandlerBool.handle_argv1   s-    Aw$..(((G#dmmr   N)Fr   r"   r   r   r$   r$   "   s    '
'
$r   r$   c                 r    t        |       }|dk7  r&|t        j                         k(  rt        d|d      |S )Nr   z4ppid passed is the same as the current process pid (z)!)intosgetpidAssertionError)ppidrets     r   convert_ppidr/   7   s:    
d)C
ax"))+ NQSU UJr   portr-   vm_typeclientzaccess-tokenzclient-access-tokenz
debug-mode	preimportzlog-filez	log-levelserver	multiprocmultiprocesszsave-signatureszsave-threadingzsave-asynciozprint-in-debugger-startupzcmd-linemodulezskip-notify-stdinzjson-dapzjson-dap-httpzprotocol-quoted-linezprotocol-httpc                      dd l } | j                  }|j                  d      r|d d }|S |j                  d      r|d t        d        dz   }|S )Nr   z.pycz	$py.classz.py)pydevd__file__endswithlen)r:   fs     r   get_pydevd_filer?   f   sY    Azz&crF H 
K	  K  !E)Hr   c                     |
t               }t               g}t        D ]2  }|j                  | v s|j                  |vs!|j	                  ||        4 |S )z
    :param dict setup:
        A dict previously gotten from process_command_line.

    :param set skip_names:
        The names in the setup which shouldn't be converted to argv.

    :note: does not handle --file nor --DEBUG.
    )setr?   ACCEPTED_ARG_HANDLERSr   r   )r   
skip_namesr.   handlers       r   setup_to_argvrE   p   s[     U

C( (u$)9)9)KOOC'( Jr   c                    i }t         D ]  }|j                  ||j                  <    d|d<   d|d<   t        |       }d}| d= |t	        |       k  rt
        j                  | |         }||j                  | ||       n| |   j                  d      rm| |   dk(  rd|d<   n[| |   j                  d      r6| |   t	        d      d }d	}||vrt        d
|z         |dk(  rd|d<   n||d<   nt        d| |   z         | |= n[| |   dk(  r| |= | |   |d<   t	        |       }n<| |   dk(  r t        j                  j                  d       nt        d| |   d|      |t	        |       k  r|S )zK parses the arguments.
        removes our arguments from the command line  filez
qt-supportr   Nz--qt-supportautoz--qt-support=)nonerI   pyqt5pyqt4pysidepyside2zqt-support mode invalid: rJ   z+Unexpected definition for qt-support flag: z--filez--DEBUGzEpydevd: --DEBUG parameter deprecated. Use `--debug-level=3` instead.
zUnexpected option: z when processing: )rB   r
   r   tupler=   ARGV_REP_TO_HANDLERr   r   
startswith
ValueErrorsysstderrwrite)r   r   rD   initial_argvr   
qt_supportvalid_modess          r   process_command_linerY      s    E( 6")"5"5g6E&ME,;L	AQ
c$i-%))$q'2a/!W/
 Aw.(&,l#a##O4!!WS%9%:;
U[0$%@:%MNN'*,E,'*4E,' !NQUVWQX!XYYQ!W Q GE&MD	A!W	!JJef DQRGUabccM c$i-N Lr   r   )r*   rS   r   r$   r/   r)   rB   rP   rD   r   r?   rE   rY   r"   r   r   <module>rZ      s<   	 
 :$ $* Q'a0	"!'-.%$ 
#S$/8;>"$%#$>"./:8&' :?#)*?#= B  $ 5G-4))*5(4r   