<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</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   