o $"b:@sddlmZmZddlZddlmZmZmZmZddl m Z ddl m Z ddl mZddlmZGd d d eZGd d d eZGd ddeZdS))absolute_importunicode_literalsN)SUPPRESSArgumentDefaultsHelpFormatterArgumentParser Namespace) OrderedDict)get_type) get_env_var) IniConfigcsLeZdZfddZddZfddZddZed d Zd d Z Z S) VirtualEnvOptionsc s&tt|jdi|d|_i|_dS)N)superr __init___src_sources)selfkwargs __class__r>/usr/lib/python3/dist-packages/virtualenv/config/cli/parser.pyrs zVirtualEnvOptions.__init__cCs(t||||dr d}||j|<dS)Nzenv var)setattr startswithr)rkeyvaluesrcrrrset_srcs  zVirtualEnvOptions.set_srccs2t|dddur|j|j|<tt|||dS)Nr)getattrrrrr __setattr__)rrrrrrrs zVirtualEnvOptions.__setattr__cCs |j|SN)rget)rrrrr get_sources zVirtualEnvOptions.get_sourcecCs*t|ds t|ds dSt|j|jdS)Nverbosequietr)hasattrmaxr#r$rrrr verbosity!szVirtualEnvOptions.verbositycCs*dt|jdddt|DS)Nz{}({})z, css*|]\}}|dsd||VqdS)_z{}={}N)rformat).0kvrrr *s(z-VirtualEnvOptions.__repr__..)r*type__name__joinvarsitemsr'rrr__repr__'szVirtualEnvOptions.__repr__) r0 __module__ __qualname__rrrr"propertyr(r4 __classcell__rrrrr s   r csHeZdZdZd fdd ZddZddZd d Zd fd d ZZ S)VirtualEnvConfigParserzy Custom option parser which updates its defaults by checking the configuration files and environmental variables Ncs|durtjn|}t||_g|_||_|jj|d<d|d<t|d<d|d<tt |j |i|t |_ |durBt |tsBtd|durItn||_d|_d|_dS)NepilogFadd_helpformatter_class virtualenvprogz)options must be of type VirtualEnvOptions)osenvironr file_config epilog_listenvr: HelpFormatterrr9rset_fixed isinstancer TypeErroroptions _interpreter _app_data)rrIrCargsrrrrr3s   zVirtualEnvConfigParser.__init__cCs8|jD]}t|}||jvr|||j|qdSr )_actionsidrF _fix_defaultadd)raction action_idrrr _fix_defaultsDs    z$VirtualEnvConfigParser._fix_defaultscCst|drgt|dri|jtkrkt|}tdd|jD}d}|D]}t|||j}|dur0nq!|durJ|jrJ|D]}|j ||}|durInq:|durU|\|_|_ n|jdf}|j j |j g|RdSdSdSdS)Ndefaultdestcss&|]}|ddddfVqdS)-r)N)lstripreplace)r+irrrr.Ns$z6VirtualEnvConfigParser._fix_default..)r%rTrr roption_stringsr rCrAr!default_sourcerIrrU)rrQas_typenamesoutcomenamerrrrOKs(  z#VirtualEnvConfigParser._fix_defaultcCs ||jdddtdddS)Nz-hz--helphelpzshow this help message and exit)rQrTr`)rS add_argumentrr'rrr enable_help_sz"VirtualEnvConfigParser.enable_helpcsd|dur|j}n ||jurtd|d|j_z|j|_tt|j||dWd|j_Sd|j_w)Nzcan only pass in parser.optionscli) namespace)rI ValueErrorrSrrCrr9parse_known_args)rrLrdrrrrfcs z'VirtualEnvConfigParser.parse_known_args)NN) r0r5r6__doc__rrSrOrbrfr8rrrrr9.sr9cs(eZdZfddZfddZZS)rDcstt|j|ddddS)N )max_help_positionwidth)rrDr)rr>rrrrrszHelpFormatter.__init__csDtt||}t|dr d}||r d|dt| }|S)Nr[z (default: %(default)s)z4{} (default: %(default)s -> from %(default_source)s))rrD_get_help_stringr%endswithr*len)rrQtextrTrrrrlus   zHelpFormatter._get_help_string)r0r5r6rrlr8rrrrrDqs rD) __future__rrr?argparserrrr collectionsrvirtualenv.config.convertr env_varr inir r r9rDrrrrs    !C