o
    Wi                     @  sp   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	 G dd deZ
dddZdddZddgZdS )    )annotations)TYPE_CHECKING   )PluginLoader)VirtualEnvConfigParser)Discoverc                   @  s   e Zd ZdZdS )	DiscoveryzDiscovery plugins.N)__name__
__module____qualname____doc__ r   r   S/home/ubuntu/.local/lib/python3.10/site-packages/virtualenv/run/plugin/discovery.pyr      s    r   parserr   argslist[str] | Nonereturnr   c              
   C  s   t d}| jddd}t|}t|dd d}ztt|}W n ty3 } zd}t||d }~ww |j	d	||d
dd | 
|\}}	|j}
|
|vr`dt|}d|
d| d}t|||
 }|| | j
||d\}}	||S )Nzvirtualenv.discovery	discoveryz)discover and provide a target interpreter)titledescriptionc                 S  s   | dkrdS dS )Nbuiltinr   r   r   )ar   r   r   <lambda>   s    zget_discover.<locals>.<lambda>)keyzINo discovery plugin found. Try reinstalling virtualenv to fix this issue.z--discoveryFzinterpreter discovery method)choicesdefaultrequiredhelpz, z
discovery z0 is not available. Available discovery methods: z. Is the plugin installed?)	namespace)r   entry_points_foradd_argument_group_get_default_discoverysortednextiterStopIterationRuntimeErroradd_argumentparse_known_argsr   joinadd_parser_arguments)r   r   discover_typesdiscovery_parserr   default_discoveryemsgoptions_r   	availablediscover_classr   r   r   get_discover   sD   


r4   r+   dict[str, type]	list[str]c                 C  s   t |  S )N)listkeys)r+   r   r   r   r!   5   s   r!   N)r   r   r   r   r   r   )r+   r5   r   r6   )
__future__r   typingr   baser   virtualenv.config.cli.parserr   virtualenv.discovery.discoverr   r   r4   r!   __all__r   r   r   r   <module>   s    

%