python: Use detect.find_external_dependency() for log consistency
py.find_installation().dependency() was not logging whether it is found or not. Use find_external_dependency() for consistency.
This commit is contained in:
parent
1a9f20d44a
commit
26da7ec9f5
|
@ -80,7 +80,7 @@ display_name_map = {
|
||||||
'wxwidgets': 'WxWidgets',
|
'wxwidgets': 'WxWidgets',
|
||||||
}
|
}
|
||||||
|
|
||||||
def find_external_dependency(name: str, env: 'Environment', kwargs: T.Dict[str, object]) -> T.Union['ExternalDependency', NotFoundDependency]:
|
def find_external_dependency(name: str, env: 'Environment', kwargs: T.Dict[str, object], candidates: T.Optional[T.List['DependencyGenerator']] = None) -> T.Union['ExternalDependency', NotFoundDependency]:
|
||||||
assert name
|
assert name
|
||||||
required = kwargs.get('required', True)
|
required = kwargs.get('required', True)
|
||||||
if not isinstance(required, bool):
|
if not isinstance(required, bool):
|
||||||
|
@ -101,7 +101,8 @@ def find_external_dependency(name: str, env: 'Environment', kwargs: T.Dict[str,
|
||||||
type_text = PerMachine('Build-time', 'Run-time')[for_machine] + ' dependency'
|
type_text = PerMachine('Build-time', 'Run-time')[for_machine] + ' dependency'
|
||||||
|
|
||||||
# build a list of dependency methods to try
|
# build a list of dependency methods to try
|
||||||
candidates = _build_external_dependency_list(name, env, for_machine, kwargs)
|
if candidates is None:
|
||||||
|
candidates = _build_external_dependency_list(name, env, for_machine, kwargs)
|
||||||
|
|
||||||
pkg_exc: T.List[DependencyException] = []
|
pkg_exc: T.List[DependencyException] = []
|
||||||
pkgdep: T.List[ExternalDependency] = []
|
pkgdep: T.List[ExternalDependency] = []
|
||||||
|
|
|
@ -22,7 +22,7 @@ from .. import mlog
|
||||||
from ..coredata import UserFeatureOption
|
from ..coredata import UserFeatureOption
|
||||||
from ..build import known_shmod_kwargs
|
from ..build import known_shmod_kwargs
|
||||||
from ..dependencies import NotFoundDependency
|
from ..dependencies import NotFoundDependency
|
||||||
from ..dependencies.detect import get_dep_identifier
|
from ..dependencies.detect import get_dep_identifier, find_external_dependency
|
||||||
from ..dependencies.python import BasicPythonExternalProgram, python_factory, _PythonDependencyBase
|
from ..dependencies.python import BasicPythonExternalProgram, python_factory, _PythonDependencyBase
|
||||||
from ..interpreter import ExternalProgramHolder, extract_required_kwarg, permitted_dependency_kwargs
|
from ..interpreter import ExternalProgramHolder, extract_required_kwarg, permitted_dependency_kwargs
|
||||||
from ..interpreter import primitives as P_OBJ
|
from ..interpreter import primitives as P_OBJ
|
||||||
|
@ -185,12 +185,8 @@ class PythonInstallation(ExternalProgramHolder):
|
||||||
|
|
||||||
new_kwargs = kwargs.copy()
|
new_kwargs = kwargs.copy()
|
||||||
new_kwargs['required'] = False
|
new_kwargs['required'] = False
|
||||||
# it's theoretically (though not practically) possible to not bind dep, let's ensure it is.
|
candidates = python_factory(self.interpreter.environment, for_machine, new_kwargs, self.held_object)
|
||||||
dep: Dependency = NotFoundDependency('python', self.interpreter.environment)
|
dep = find_external_dependency('python', self.interpreter.environment, new_kwargs, candidates)
|
||||||
for d in python_factory(self.interpreter.environment, for_machine, new_kwargs, self.held_object):
|
|
||||||
dep = d()
|
|
||||||
if dep.found():
|
|
||||||
break
|
|
||||||
|
|
||||||
self.interpreter.coredata.deps[for_machine].put(identifier, dep)
|
self.interpreter.coredata.deps[for_machine].put(identifier, dep)
|
||||||
return dep
|
return dep
|
||||||
|
|
Loading…
Reference in New Issue