o $"b @sjddlmZmZddlmZmZmZddlmZddl m Z ddl m Z edgdZ Gd d d e Zd S) )absolute_importunicode_literals) OrderedDict defaultdict namedtuple)Describe)VirtualenvBuiltin)ComponentBuilder CreatorInfo key_to_class key_to_metadescribe builtin_keycsPeZdZfddZeddZddZeddZd d Z fd d Z Z S) CreatorSelectorcs2||\}|_|_|_tt|||d|dS)Ncreator)for_interpreterrrrsuperr__init__)self interpreterparsercreators __class__@/usr/lib/python3/dist-packages/virtualenv/run/plugin/creators.pyrszCreatorSelector.__init__c Cstiddf\}}}}tt}|dD]J\}}|dkr"td||} | rP| jr5|| j|nd|vrHt |t rH|}||d<| |d<|||<| ||<|dur`t |t r`| |r`|}q|s||rudd|D} td | td|t||||dS) Nzvirtualenv.createbuiltinz"builtin creator is a reserved namec Ss,g|]\}}d|ddd|DqS)z{} for creators {}z, css|]}|jVqdSN)__name__).0irrr (sz=CreatorSelector.for_interpreter...)formatjoin)r!kvrrr (s,z3CreatorSelector.for_interpreter.. z#No virtualenv implementation for {}r )rrlistoptionsitems RuntimeError can_createerrorappend issubclassrr can_describer%r$r ) clsrr rrrerrorskey creator_classmetarowsrrrrs: zCreatorSelector.for_interpreterc CsVt|ddd}||}|jjd|||dd|jdur dnd|jd dS) NcSs|dkrdSdS)Nrrr r)arrr5sz8CreatorSelector.add_selector_arg_parse..)r5z--{}Fzcreate environment via{}z (builtin = {}))choicesdefaultrequiredhelp)sorted _get_defaultr add_argumentr$r)rnamer< default_valuerrradd_selector_arg_parse3s  z&CreatorSelector.add_selector_arg_parsecCs tt|Sr)nextiter)r<rrrrAAs zCreatorSelector._get_defaultcCs2d|j||j_|j|j|j|j||dS)Nzoptions for {} {})r$rCr description _impl_classadd_parser_argumentsrr)rselectedapp_datarrrpopulate_selected_argparseEs z*CreatorSelector.populate_selected_argparsecs@|jt||j|_t|jts|||j|_t t | |Sr) rgetattrrCr7r1rIrrrrrcreate)rr+rrrrOIs zCreatorSelector.create) r __module__ __qualname__r classmethodrrE staticmethodrArMrO __classcell__rrrrr s    rN) __future__rr collectionsrrrvirtualenv.create.describer4virtualenv.create.via_global_ref.builtin.builtin_wayrbaser r rrrrrs