U
    b^                     @   sH   d dl mZmZ d dlmZmZ d dlmZ eeG dd deZ	dS )    )absolute_importunicode_literals)ABCMetaabstractmethod)add_metaclassc                   @   s<   e Zd ZdZedd Zdd Zedd Ze	dd	 Z
d
S )Discoverz5Discover and provide the requested Python interpreterc                 C   s   t dS )z`Add CLI arguments for this discovery mechanisms.

        :param parser: the CLI parser
        NNotImplementedError)clsparser r   ?/usr/lib/python3/dist-packages/virtualenv/discovery/discover.pyadd_parser_arguments   s    zDiscover.add_parser_argumentsc                 C   s   d| _ d| _dS )zCreate a new discovery mechanism.

        :param options: the parsed options as defined within :meth:`add_parser_arguments`
        FN)_has_run_interpreter)selfZoptionsr   r   r   __init__   s    zDiscover.__init__c                 C   s   t dS )zsDiscovers an interpreter.


        :return: the interpreter ready to use for virtual environment creation
        Nr   r   r   r   r   run   s    zDiscover.runc                 C   s    | j dkr|  | _d| _ | jS )zM
        :return: the interpreter as returned by :meth:`run`, cached
        FT)r   r   r   r   r   r   r   interpreter&   s    

zDiscover.interpreterN)__name__
__module____qualname____doc__classmethodr   r   r   r   propertyr   r   r   r   r   r      s   

r   N)
Z
__future__r   r   abcr   r   Zsixr   objectr   r   r   r   r   <module>   s   