o
    Uh                     @  sJ   d dl mZ d dlmZ d dlmZ ddlmZ G dd deZdgZ	dS )	    )annotations)ArgumentTypeError)OrderedDict   )ComponentBuilderc                      s>   e Zd Zd fddZdd Zdd Zd	d
 Zdd Z  ZS )ActivationSelectorreturnNonec                   sJ   d | _ t fdd| d D }t  |d| d| j_d | _d S )Nc                 3  s&    | ]\}}|  r||fV  qd S )N)supports.0kvinterpreter t/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/virtualenv/run/plugin/activators.py	<genexpr>   s    
z.ActivationSelector.__init__.<locals>.<genexpr>zvirtualenv.activate
activatorszoptions for activation scripts)	defaultr   optionsitemssuper__init__parserdescriptionactive)selfr   r   possible	__class__r   r   r   
   s   
zActivationSelector.__init__c                 C  s2   d || _| jjd| | jddd| jd d S )N,z--comma_sep_listFz1activators to generate - default is all supported)r   metavarrequiredhelptype)joinr   r   add_argument_extract_activators)r   namechoicesr   r   r   add_selector_arg_parse   s   
z)ActivationSelector.add_selector_arg_parsec                   sF   dd | dD } fdd|D }|r!dd| }t||S )Nc                 S  s   g | ]
}|  r|  qS r   )stripr   er   r   r   
<listcomp>   s    z:ActivationSelector._extract_activators.<locals>.<listcomp>r!   c                   s   g | ]	}| j vr|qS r   )r   r.   r   r   r   r0       s    z+the following activators are not available )splitr'   r   )r   entered_strelementsmissingmsgr   r1   r   r)      s   z&ActivationSelector._extract_activatorsc                   sr   |j | ju r| | jn|j   fdd| j D | _| jjddddd d | j D ]
}|	| j| j
 q,d S )Nc                   s   i | ]\}}| v r||qS r   r   r   selected_activatorsr   r   
<dictcomp>*   s    z@ActivationSelector.handle_selected_arg_parse.<locals>.<dictcomp>z--promptpromptzsprovides an alternative prompt prefix for this environment (value of . means name of the current working directory))destr#   r%   r   )r   r   r)   r   r   r   r   r(   valuesadd_parser_argumentsr   )r   r   	activatorr   r7   r   handle_selected_arg_parse&   s   
z,ActivationSelector.handle_selected_arg_parsec                   s    fdd| j  D S )Nc                   s   g | ]}| qS r   r   )r   activator_classr   r   r   r0   9   s    z-ActivationSelector.create.<locals>.<listcomp>)r   r<   )r   r   r   rA   r   create8   s   zActivationSelector.create)r   r	   )	__name__
__module____qualname__r   r,   r)   r?   rB   __classcell__r   r   r   r   r   	   s    	r   N)

__future__r   argparser   collectionsr   baser   r   __all__r   r   r   r   <module>   s    4