
    .Ph$                        d dl mZ d dlZd dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ  G d d	e          Z G d
 de          Z G d de          Zg dZdS )    )annotationsN)SUPPRESSArgumentDefaultsHelpFormatterArgumentParser	Namespace)OrderedDict)get_type)get_env_var)	IniConfigc                  V     e Zd Zd
 fdZd Zd
 fdZd Zed             Zdd	Z	 xZ
S )VirtualEnvOptionsreturnNonec                V     t                      j        di | d | _        i | _        d S )N )super__init___src_sources)selfkwargs	__class__s     \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/virtualenv/config/cli/parser.pyr   zVirtualEnvOptions.__init__   s2    ""6"""	    c                j    t          | ||           |                    d          rd}|| j        |<   d S )Nzenv var)setattr
startswithr   )r   keyvaluesrcs       r   set_srczVirtualEnvOptions.set_src   s?    c5!!!>>)$$ 	C cr   c                    t          | dd           | j        | j        |<   t                                          ||           d S )Nr   )getattrr   r   r   __setattr__)r   r   r   r   s      r   r$   zVirtualEnvOptions.__setattr__   sC    4&&2!%DM#C'''''r   c                6    | j                             |          S N)r   get)r   r   s     r   
get_sourcezVirtualEnvOptions.get_source   s    }  %%%r   c                    t          | d          st          | d          sd S t          | j        | j        z
  d          S )Nverbosequietr   )hasattrmaxr*   r+   r   s    r   	verbosityzVirtualEnvOptions.verbosity    sC    tY'' 	g0F0F 	44<$*,a000r   strc                    t          |           j         dd                    d t          |                                           D                        dS )N(z, c              3  T   K   | ]#\  }}|                     d           | d| V  $dS )_=N)r   ).0kvs      r   	<genexpr>z-VirtualEnvOptions.__repr__.<locals>.<genexpr>'   sE      1u1uAcdcocopsctct1uQ****1u1u1u1u1u1ur   ))type__name__joinvarsitemsr.   s    r   __repr__zVirtualEnvOptions.__repr__&   sO    t**%xx		1u1udIYIYI[I[1u1u1u(u(uxxxxr   r   r   )r   r0   )r<   
__module____qualname__r   r!   r$   r(   propertyr/   r@   __classcell__r   s   @r   r   r      s             
! ! !( ( ( ( ( (
& & & 1 1 X1
y y y y y y y yr   r   c                  D     e Zd ZdZd
d fdZd Zd Zd Zd
 fd		Z xZ	S )VirtualEnvConfigParserzkCustom option parser which updates its defaults by checking the configuration files and environmental vars.Nr   r   c                   |t           j        n|}t          |          | _        g | _        || _        | j        j        |d<   d|d<   t          |d<   d|d<    t                      j	        |i | t                      | _        |&t          |t                    sd}t          |          |t                      n|| _        d | _        d | _        d S )NepilogFadd_helpformatter_class
virtualenvprogz)options must be of type VirtualEnvOptions)osenvironr   file_configepilog_listenvrJ   HelpFormatterr   r   set_fixed
isinstancer   	TypeErroroptions_interpreter	_app_data)r   rY   rS   argsr   msgr   s         r   r   zVirtualEnvConfigParser.__init__-   s    KbjjS$S>>+2x"z$1 !%v$)&)))eez';L'M'M=CC.. .5o(***7 r   c                    | j         D ]I}t          |          }|| j        vr/|                     |           | j                            |           Jd S r&   )_actionsidrV   _fix_defaultadd)r   action	action_ids      r   _fix_defaultsz$VirtualEnvConfigParser._fix_defaults?   s^    m 	+ 	+F6

I++!!&)))	***		+ 	+r   c                   t          |d          rt          |d          r|j        t          k    rt          |          }t	          d |j        D                       }d }|D ]}t          ||| j                  }| n|+| j        r$|D ]!}| j        	                    ||          }| n"||\  |_        |_
        n	|j        df} | j        j        |j        g|R   d S d S d S d S )Ndefaultdestc              3  l   K   | ]/}|                     d                               d d          dfV  0dS )-r4   N)lstripreplace)r6   is     r   r9   z6VirtualEnvConfigParser._fix_default.<locals>.<genexpr>I   sA      ggA#!6!6sC!@!@$ Gggggggr   )r,   rg   r   r	   r   option_stringsr
   rS   rQ   r'   default_sourcerY   r!   rh   )r   rc   as_typenamesoutcomenames         r   ra   z#VirtualEnvConfigParser._fix_defaultF   s<   69%% 	8'&&*A*A 	8fnX`F`F`v&&GggQWQfgggggEG  %dGTX>>&E '4#3!  D".224AAG* +"8?5 5 5 .)3 DL 7w777777#	8 	8 	8 	8F`F`r   c                l    |                                   |                     dddt          d           d S )Nz-hz--helphelpzshow this help message and exit)rc   rg   ru   )re   add_argumentr   r.   s    r   enable_helpz"VirtualEnvConfigParser.enable_helpZ   s:    $Pqrrrrrr   c                &   || j         }n|| j         urd}t          |          |                                  d| j         _        	 | j        |_        t                                          ||          d | j         _        S # d | j         _        w xY w)Nzcan only pass in parser.optionscli)	namespace)rY   
ValueErrorre   r   rS   r   parse_known_args)r   r\   rz   r]   r   s       r   r|   z'VirtualEnvConfigParser.parse_known_args^   s    IIdl**3CS//!!	% HIM77++DI+FF $DLDL$$$$s   .B B)NNrA   )
r<   rB   rC   __doc__r   re   ra   rw   r|   rE   rF   s   @r   rH   rH   *   s        uu      $+ + +8 8 8(s s s% % % % % % % % % %r   rH   c                  *     e Zd Zd fdZ fdZ xZS )rT   r   r   c                B     t                      j        |fddd| d S )N       )max_help_positionwidth)r   r   )r   rN   r   r   s      r   r   zHelpFormatter.__init__n   s/    I3II&IIIIIr   c                    t                                          |          }t          |d          r2d}|                    |          r|d t	          |                     d}|S )Nro   z (default: %(default)s)z2 (default: %(default)s -> from %(default_source)s))r   _get_help_stringr,   endswithlen)r   rc   textrg   r   s       r   r   zHelpFormatter._get_help_stringq   sl    ww''//6+,, 	d/G}}W%% d#g,,/cccr   rA   )r<   rB   rC   r   r   rE   rF   s   @r   rT   rT   m   s\        J J J J J J        r   rT   )rT   rH   r   )
__future__r   rO   argparser   r   r   r   collectionsr   virtualenv.config.convertr	   virtualenv.config.env_varr
   virtualenv.config.inir   r   rH   rT   __all__r   r   r   <module>r      s1   " " " " " " 				 W W W W W W W W W W W W # # # # # # . . . . . . 1 1 1 1 1 1 + + + + + +y y y y y	 y y y<@% @% @% @% @%^ @% @% @%F
 
 
 
 
1 
 
 
  r   