a qeg@sddlmZddlZddlmZmZmZmZddlm Z ddl m Z ddl m Z ddlmZGdd d eZGd d d eZGd d d eZgdZdS)) annotationsN)SUPPRESSArgumentDefaultsHelpFormatterArgumentParser Namespace) OrderedDict)get_type) get_env_var) IniConfigcs^eZdZddfdd ZddZddfdd Zd d Zed d Zd dddZ Z S)VirtualEnvOptionsNonereturnc s"tjfi|d|_i|_dSN)super__init___src_sources)selfkwargs __class__F/usr/local/lib/python3.9/site-packages/virtualenv/config/cli/parser.pyr szVirtualEnvOptions.__init__cCs(t||||drd}||j|<dS)Nzenv var)setattr startswithr)rkeyvaluesrcrrrset_srcs  zVirtualEnvOptions.set_srccs.t|dddur|j|j|<t||dS)Nr)getattrrrr __setattr__)rrrrrrr!s zVirtualEnvOptions.__setattr__cCs |j|Sr)rget)rrrrr get_sourceszVirtualEnvOptions.get_sourcecCs*t|dst|dsdSt|j|jdS)Nverbosequietr)hasattrmaxr$r%rrrr verbosity szVirtualEnvOptions.verbositystrcCs.t|jddddt|DdS)N(z, css*|]"\}}|ds|d|VqdS)_=N)r).0kvrrr 'z-VirtualEnvOptions.__repr__..))type__name__joinvarsitemsr(rrr__repr__&szVirtualEnvOptions.__repr__) r5 __module__ __qualname__rrr!r#propertyr)r9 __classcell__rrrrr s r csNeZdZdZdddfdd ZddZd d Zd d Zdfd d ZZ S)VirtualEnvConfigParserzkCustom option parser which updates its defaults by checking the configuration files and environmental vars.Nr r cs|durtjn|}t||_g|_||_|jj|d<d|d<t|d<d|d<tj |i|t |_ |durt |t sd}t||durt n||_d|_d|_dS)NepilogFadd_helpformatter_class virtualenvprogz)options must be of type VirtualEnvOptions)osenvironr file_configZ epilog_listenvr? HelpFormatterrrset_fixed isinstancer TypeErroroptions _interpreterZ _app_data)rrMrGargsrmsgrrrr-s   zVirtualEnvConfigParser.__init__cCs8|jD],}t|}||jvr|||j|qdSr)_actionsidrJ _fix_defaultadd)ractionZ action_idrrr _fix_defaults?s    z$VirtualEnvConfigParser._fix_defaultscCst|drt|dr|jtkrt|}tdd|jD}d}|D]}t|||j}|durBqbqB|dur|jr|D]}|j ||}|durtqqt|dur|\|_|_ n |jdf}|j j |j g|RdS)Ndefaultdestcss$|]}|ddddfVqdS)-r,N)lstripreplace)r.irrrr1Ir2z6VirtualEnvConfigParser._fix_default..)r&rWrrroption_stringsr rGrFr"default_sourcerMrrX)rrUZas_typenamesoutcomenamerrrrSFs" z#VirtualEnvConfigParser._fix_defaultcCs ||jdddtdddS)Nz-hz--helphelpzshow this help message and exit)rUrWrb)rV add_argumentrr(rrr enable_helpZsz"VirtualEnvConfigParser.enable_helpcsh|dur|j}n||jur&d}t||d|j_z"|j|_tj||dWd|j_Sd|j_0dS)Nzcan only pass in parser.optionscli) namespace)rM ValueErrorrVrrGrparse_known_args)rrOrfrPrrrrh^s z'VirtualEnvConfigParser.parse_known_args)NN)NN) r5r:r;__doc__rrVrSrdrhr=rrrrr>*s r>cs.eZdZddfdd ZfddZZS)rHr r cstj|ddddS)N )max_help_positionwidth)rr)rrCrrrrnszHelpFormatter.__init__cs@t|}t|dr from %(default_source)s))r_get_help_stringr&endswithlen)rrUtextrWrrrrnqs    zHelpFormatter._get_help_string)r5r:r;rrnr=rrrrrHmsrH)rHr>r ) __future__rrDargparserrrr collectionsrZvirtualenv.config.convertrZvirtualenv.config.env_varr Zvirtualenv.config.inir r r>rH__all__rrrrs     C