a :i@s,ddlmZmZGdddedZdgZdS))ABCMetaabstractmethodc@s<eZdZdZeddZddZeddZe dd Z d S) Discoverz5Discover and provide the requested Python interpretercCstdS)z`Add CLI arguments for this discovery mechanisms. :param parser: the CLI parser NNotImplementedError)clsparserr A/usr/lib/python3.9/site-packages/virtualenv/discovery/discover.pyadd_parser_argumentsszDiscover.add_parser_argumentscCsd|_d|_|j|_dS)zCreate a new discovery mechanism. :param options: the parsed options as defined within :meth:`add_parser_arguments` FN)_has_run _interpreterenvZ_env)selfoptionsr r r __init__szDiscover.__init__cCstdS)zrDiscovers an interpreter. :return: the interpreter ready to use for virtual environment creation Nrrr r r runsz Discover.runcCs |jdur||_d|_|jS)zM :return: the interpreter as returned by :meth:`run`, cached FT)r rr rr r r interpreter s  zDiscover.interpreterN) __name__ __module__ __qualname____doc__ classmethodr rrrpropertyrr r r r rs   r) metaclassN)abcrrr__all__r r r r s(