26 lines
804 B
Python
26 lines
804 B
Python
import os
|
|
|
|
from tox.interpreters.py_spec import CURRENT, PythonSpec
|
|
from tox.interpreters.via_path import exe_spec
|
|
|
|
|
|
def base_discover(envconfig):
|
|
base_python = envconfig.basepython
|
|
spec = PythonSpec.from_name(base_python)
|
|
|
|
# 1. check passed in discover elements
|
|
discovers = envconfig.config.option.discover
|
|
if not discovers:
|
|
discovers = os.environ.get(str("TOX_DISCOVER"), "").split(os.pathsep)
|
|
for discover in discovers:
|
|
if os.path.exists(discover):
|
|
cur_spec = exe_spec(discover, envconfig.basepython)
|
|
if cur_spec is not None and cur_spec.satisfies(spec):
|
|
return spec, cur_spec.path
|
|
|
|
# 2. check current
|
|
if spec.name is not None and CURRENT.satisfies(spec):
|
|
return spec, CURRENT.path
|
|
|
|
return spec, None
|