£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    a                 @   sn   d dl mZmZ d dlmZmZmZ d dlmZ d dl	m
Z
 ddlmZ eddd	d
dgZG dd deZdS )    )absolute_importunicode_literals)OrderedDictdefaultdict
namedtuple)Describe)VirtualenvBuiltin   )ComponentBuilderCreatorInfokey_to_classkey_to_metadescribebuiltin_keyc                   sP   e Zd Z fddZedd Zdd Zedd Zd	d
 Z	 fddZ
  ZS )CreatorSelectorc                s2   |  |\}| _| _| _tt| ||d| d S )NZcreator)for_interpreterr   r   r   superr   __init__)selfinterpreterparserZcreators)	__class__ O/opt/alt/python37/lib/python3.7/site-packages/virtualenv/run/plugin/creators.pyr      s    zCreatorSelector.__init__c             C   s  t  i d d f\}}}}tt}x| d D ]\}}|dkrFtd||}	|	r|	jrl||	j | n6d|krt	|t
r|}||d< |	|d< |||< |	||< |d kr.t	|tr.||r.|}q.W |s|rdd | D }
td|
ntd|t||||dS )	Nzvirtualenv.createbuiltinz"builtin creator is a reserved namec          	   S   s,   g | ]$\}}d  |ddd |D qS )z{} for creators {}z, c             s   s   | ]}|j V  qd S )N)__name__).0ir   r   r   	<genexpr>(   s    z=CreatorSelector.for_interpreter.<locals>.<listcomp>.<genexpr>)formatjoin)r   kvr   r   r   
<listcomp>(   s    z3CreatorSelector.for_interpreter.<locals>.<listcomp>
z#No virtualenv implementation for {})r   r   r   r   )r   r   listoptionsitemsRuntimeErrorZ
can_createerrorappend
issubclassr   r   Zcan_describer    r   r   )clsr   r   r   r   r   errorskeyZcreator_classmetaZrowsr   r   r   r      s6    
zCreatorSelector.for_interpreterc          
   C   sV   t |dd d}| |}| jjd|||dd| jd kr@dn
d| jd	 d S )
Nc             S   s   | dkrdS dS )Nr   r   r	   r   )ar   r   r   <lambda>5       z8CreatorSelector.add_selector_arg_parse.<locals>.<lambda>)r.   z--{}Fzcreate environment via{} z (builtin = {}))choicesdefaultrequiredhelp)sorted_get_defaultr   add_argumentr   r   )r   namer4   default_valuer   r   r   add_selector_arg_parse3   s    
z&CreatorSelector.add_selector_arg_parsec             C   s   t t| S )N)nextiter)r4   r   r   r   r9   A   s    zCreatorSelector._get_defaultc             C   s2   d | j|| j_| j| j| j| j| | d S )Nzoptions for {} {})r   r;   r   description_impl_classZadd_parser_argumentsr   r   )r   selectedZapp_datar   r   r   populate_selected_argparseE   s    z*CreatorSelector.populate_selected_argparsec                s@   | j t|| j |_t| jts0| || j|_t	t
| |S )N)r   getattrr;   r/   r+   rA   r   r   r   r   r   create)r   r&   )r   r   r   rE   I   s    zCreatorSelector.create)r   
__module____qualname__r   classmethodr   r=   staticmethodr9   rC   rE   __classcell__r   r   )r   r   r      s   !r   N)
__future__r   r   collectionsr   r   r   Zvirtualenv.create.describer   Z4virtualenv.create.via_global_ref.builtin.builtin_wayr   baser
   r   r   r   r   r   r   <module>   s   