
    3iJ                        d dl mZ d dlmZ d dlmZ d dlmZ ddlm	Z	 erd dl
mZ d dlmZ d d	lmZ d d
lmZmZ  G d de	      ZdgZy)    )annotations)ArgumentTypeError)OrderedDict)TYPE_CHECKING   )ComponentBuilder)Sequence)
PythonInfo)	Activator)VirtualEnvConfigParserVirtualEnvOptionsc                  @     e Zd Zd fdZddZddZd	dZd
dZ xZS )ActivationSelectorc                    d | _         t        fd| j                  d      j                         D              }t        |   |d|       d| j                  _        d | _        y )Nc              3  N   K   | ]  \  }}|j                        r||f  y wN)supports).0kvinterpreters      S/var/www/opsc/venv/lib/python3.12/site-packages/virtualenv/run/plugin/activators.py	<genexpr>z.ActivationSelector.__init__.<locals>.<genexpr>   s-      
1zz+& F
s   "%zvirtualenv.activate
activatorszoptions for activation scripts)	defaultr   optionsitemssuper__init__parserdescriptionactive)selfr   r    possible	__class__s    `  r   r   zActivationSelector.__init__   s\     
%:;AAC
 

 	flHE"B    c                    dj                  |      | _        | j                  j                  d| | j                  ddd| j                         y )N,z--comma_sep_listFz1activators to generate - default is all supported)r   metavarrequiredhelptype)joinr   r    add_argument_extract_activators)r#   namechoicess      r   add_selector_arg_parsez)ActivationSelector.add_selector_arg_parse   sK    xx(  KLL$D)) 	! 	
r&   c                   |j                  d      D cg c]#  }|j                         s|j                         % }}|D cg c]  }|| j                  vs| }}|rddj                  |       }t	        |      |S c c}w c c}w )Nr(   z+the following activators are not available )splitstripr$   r.   r   )r#   entered_streelementsmissingmsgs         r   r0   z&ActivationSelector._extract_activators)   s~    '2'8'8'=K!AGGIKK&A!4==*@1AA?@Q?RSC#C(( LAs   A?A?BBc                   |j                   | j                  u r| j                  | j                        n|j                   }| j                  j	                         D ci c]  \  }}||v s|| c}}| _        | j                  j                  ddddd        | j
                  j                         D ](  }|j                  | j                  | j                         * y c c}}w )Nz--promptpromptzsprovides an alternative prompt prefix for this environment (value of . means name of the current working directory))destr*   r,   r   )r   r   r0   r$   r   r"   r    r/   valuesadd_parser_argumentsr   )r#   r   selected_activatorsr   r   	activators         r   handle_selected_arg_parsez,ActivationSelector.handle_selected_arg_parse1   s    6=6H6HDLL6XD$$T\\2^e^p^p 	 )-(;(;(=Z1FYAYq!tZ  K  	! 		
 ++- 	JI**4;;8H8HI	J [s   C*Cc                    | j                   J | j                   j                         D cg c]
  } ||       c}S c c}w r   )r"   r?   )r#   r   activator_classs      r   createzActivationSelector.createC   s8    {{&&&@D@R@R@TU_(UUUs   =)r   r
   r    r   returnNone)r1   strr2   zSequence[str]rG   rH   )r7   rI   rG   z	list[str])r   r   rG   rH   )r   r   rG   zlist[Activator])	__name__
__module____qualname__r   r3   r0   rC   rF   __classcell__)r%   s   @r   r   r      s    		
J$Vr&   r   N)
__future__r   argparser   collectionsr   typingr   baser   collections.abcr	   python_discoveryr
   virtualenv.activation.activatorr   virtualenv.config.cli.parserr   r   r   __all__ r&   r   <module>rY      s?    " & #   "(+9V3V) 3Vn r&   