
    .Ph*                        d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 d dl
mZ ddlmZ erd dlmZmZ  G d	 d
e          Z G d de          Zd
dgZdS )    )annotations)OrderedDictdefaultdict)TYPE_CHECKING
NamedTuple)Describe)VirtualenvBuiltin   )ComponentBuilder)CreatorCreatorMetac                  8    e Zd ZU ded<   ded<   ded<   ded<   d	S )
CreatorInfozdict[str, type[Creator]]key_to_classzdict[str, CreatorMeta]key_to_metaztype[Describe] | Nonedescribestrbuiltin_keyN)__name__
__module____qualname____annotations__     ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/virtualenv/run/plugin/creators.pyr   r      sB         ****''''####r   r   c                  b     e Zd Zd	 fdZed             Zd Zed             Zd Z	 fdZ
 xZS )
CreatorSelectorreturnNonec                    |                      |          \  }| _        | _        | _        t	                                          ||d|           d S )Ncreator)for_interpreterr   r   r   super__init__)selfinterpreterparsercreators	__class__s       r   r$   zCreatorSelector.__init__   sL    FJFZFZ[fFgFgC$"DM43CfiBBBBBr   c                   t                      i d d f\  }}}}t          t                    }|                     d                                          D ]\  }}|dk    rd}	t          |	          |                    |          }
|
rW|
j        r!||
j                                     |           n/d|vr!t          |t                    r|}||d<   |
|d<   |||<   |
||<   |,t          |t                    r|                    |          r|}|sV|r@d |                                D             }t          d                    |                    d| }	t          |	          t          ||||          S )Nzvirtualenv.createbuiltinz"builtin creator is a reserved namec                \    g | ])\  }}| d d                     d |D                        *S )z for creators z, c              3  $   K   | ]}|j         V  d S N)r   ).0is     r   	<genexpr>z=CreatorSelector.for_interpreter.<locals>.<listcomp>.<genexpr>2   s$      5L5LQaj5L5L5L5L5L5Lr   )join)r/   kvs      r   
<listcomp>z3CreatorSelector.for_interpreter.<locals>.<listcomp>2   sH    jjjSWSTVW1NNDII5L5L!5L5L5L,L,LNNjjjr   
z!No virtualenv implementation for )r   r   r   r   )r   r   listoptionsitemsRuntimeError
can_createerrorappend
issubclassr	   r   can_describer2   r   )clsr&   r   r   r   r   errorskeycreator_classmsgmetarowss               r   r"   zCreatorSelector.for_interpreter   s   ;F=="dTX;X8k;T"""%++.A"B"B"H"H"J"J 	) 	)Ci:"3''' ++K88D 	,: ,4:&--m<<<< 44MSd9e9e4&)2?Y/15I.(5L%'+K$J}h$G$GMLfLfgrLsLs( 	$ 4jj[a[g[g[i[ijjj"499T??333CkCCCs###%##	
 
 
 	
r   c           
         t          |d           }|                     |          }| j                            d| ||dd| j        dn
d| j         d 	           d S )
Nc                    | dk    rdndS )Nr+   r   r
   r   )as    r   <lambda>z8CreatorSelector.add_selector_arg_parse.<locals>.<lambda>?   s    Q)^^ r   )rB   z--Fzcreate environment via z (builtin = ))choicesdefaultrequiredhelp)sorted_get_defaultr'   add_argumentr   )r%   namerM   default_values       r   add_selector_arg_parsez&CreatorSelector.add_selector_arg_parse=   s    &J&JKKK))'22  KK!r0@0H""Np]a]mNpNpNprr 	! 	
 	
 	
 	
 	
r   c                :    t          t          |                     S r.   )nextiter)rM   s    r   rR   zCreatorSelector._get_defaultI   s    DMM"""r   c                    d| j          d| | j        _        | j                            | j        | j        | j        |         |           d S )Nzoptions for  )rT   r'   description_impl_classadd_parser_argumentsr&   r   )r%   selectedapp_datas      r   populate_selected_argparsez*CreatorSelector.populate_selected_argparseM   sP    "G"G"GX"G"G--dk4;KTM]^fMgiqrrrrrr   c                   | j         t          || j                           |_        t	          | j        t                    s |                     || j                  |_        t                      
                    |          S r.   )r   getattrrT   rE   r>   r]   r   r   r&   r#   create)r%   r8   r)   s     r   rd   zCreatorSelector.createQ   sc    '(C(CD$*H55 	H#}}Wd6FGGGww~~g&&&r   )r   r   )r   r   r   r$   classmethodr"   rV   staticmethodrR   ra   rd   __classcell__)r)   s   @r   r   r      s        C C C C C C 
 
 [
B

 

 

 # # \#s s s' ' ' ' ' ' ' ' 'r   r   N)
__future__r   collectionsr   r   typingr   r   virtualenv.create.describer   4virtualenv.create.via_global_ref.builtin.builtin_wayr	   baser   virtualenv.create.creatorr   r   r   r   __all__r   r   r   <module>rp      s   " " " " " " 0 0 0 0 0 0 0 0 , , , , , , , , / / / / / / R R R R R R " " " " " " ?>>>>>>>>    *   ?' ?' ?' ?' ?'& ?' ?' ?'F r   