U e*@sddlmZddlmZmZddlmZmZddlm Z ddl m Z ddl m Z erdddlmZmZGd d d eZGd d d e Zd d gZd S)) annotations) OrderedDict defaultdict) TYPE_CHECKING NamedTuple)Describe)VirtualenvBuiltin)ComponentBuilder)Creator CreatorMetac@s.eZdZUded<ded<ded<ded<d S) CreatorInfozdict[str, type[Creator]] key_to_classzdict[str, CreatorMeta] key_to_metaztype[Describe] | Nonedescribestr builtin_keyN)__name__ __module__ __qualname____annotations__rrL/opt/hc_python/lib/python3.8/site-packages/virtualenv/run/plugin/creators.pyr s r csVeZdZddfdd ZeddZddZed d Zd d Z fd dZ Z S)CreatorSelectorNone)returncs.||\}|_|_|_t||d|dS)NZcreator)for_interpreterrrrsuper__init__)self interpreterparserZcreators __class__rrrszCreatorSelector.__init__c Cstiddf\}}}}tt}|dD]\}}|dkrHd} t| ||} | r| jrn|| j|n6d|krt |t r|}||d<| |d<|||<| ||<|dkr,t |t r,| |r,|}q,|s|rdd|D} td | d|} t| t||||dS) Nzvirtualenv.createbuiltinz"builtin creator is a reserved namecSs.g|]&\}}|dddd|DqS)z for creators z, css|] }|jVqdSN)r).0irrr 2sz=CreatorSelector.for_interpreter...)join)r&kvrrr 2sz3CreatorSelector.for_interpreter.. z!No virtualenv implementation for )rrrr)rrlistoptionsitems RuntimeErrorZ can_createerrorappend issubclassrrZ can_describer)r ) clsr rrrrerrorskeyZ creator_classmsgmetarowsrrrrs<  zCreatorSelector.for_interpreterc CsXt|ddd}||}|jjd|||dd|jdkr>dn d|jd d dS) NcSs|dkr dSdS)Nr$rr r)arrr?z8CreatorSelector.add_selector_arg_parse..)r7z--Fzcreate environment viaz (builtin = ))choicesdefaultrequiredhelp)sorted _get_defaultr! add_argumentr)rnamer@ default_valuerrradd_selector_arg_parse=s  z&CreatorSelector.add_selector_arg_parsecCs tt|Sr%)nextiter)r@rrrrEIszCreatorSelector._get_defaultcCs6d|jd||j_|j|j|j|j||dS)Nz options for  )rGr! description _impl_classZadd_parser_argumentsr r)rselectedZapp_datarrrpopulate_selected_argparseMsz*CreatorSelector.populate_selected_argparsecs<|jt||j|_t|jts0|||j|_t |Sr%) rgetattrrGr9r4rNrrr rcreate)rr/r"rrrRQs zCreatorSelector.create) rrrr classmethodrrI staticmethodrErPrR __classcell__rrr"rrs !  rN) __future__r collectionsrrtypingrrZvirtualenv.create.describerZ4virtualenv.create.via_global_ref.builtin.builtin_wayrbaser Zvirtualenv.create.creatorr r r r__all__rrrrs    C