From ae89ca1015fd1d8306bbb78c31f1bde53375a712 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Fri, 6 Dec 2024 12:11:31 -0800 Subject: interpreter: port dependency(allow_fallback) to typed_kwargs --- mesonbuild/interpreter/interpreter.py | 6 +----- mesonbuild/interpreter/kwargs.py | 1 + mesonbuild/interpreter/type_checking.py | 1 + 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index 861059f83..0f6114199 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -1789,7 +1789,6 @@ class Interpreter(InterpreterBase, HoldableObject): # When adding kwargs, please check if they make sense in dependencies.get_dep_identifier() @FeatureNewKwargs('dependency', '0.57.0', ['cmake_package_version']) - @FeatureNewKwargs('dependency', '0.56.0', ['allow_fallback']) @FeatureNewKwargs('dependency', '0.54.0', ['components']) @FeatureNewKwargs('dependency', '0.52.0', ['include_type']) @FeatureNewKwargs('dependency', '0.50.0', ['not_found_message', 'cmake_module_path', 'cmake_args']) @@ -1804,12 +1803,9 @@ class Interpreter(InterpreterBase, HoldableObject): names = [n for n in args[0] if n] if len(names) > 1: FeatureNew('dependency with more than one name', '0.60.0').use(self.subproject) - allow_fallback = kwargs.get('allow_fallback') - if allow_fallback is not None and not isinstance(allow_fallback, bool): - raise InvalidArguments('"allow_fallback" argument must be boolean') fallback = kwargs.get('fallback') default_options = kwargs.get('default_options') - df = DependencyFallbacksHolder(self, names, allow_fallback, default_options) + df = DependencyFallbacksHolder(self, names, kwargs['allow_fallback'], default_options) df.set_fallback(fallback) not_found_message = kwargs.get('not_found_message', '') if not isinstance(not_found_message, str): diff --git a/mesonbuild/interpreter/kwargs.py b/mesonbuild/interpreter/kwargs.py index fe45f3b2b..481c126f4 100644 --- a/mesonbuild/interpreter/kwargs.py +++ b/mesonbuild/interpreter/kwargs.py @@ -494,3 +494,4 @@ class FuncDeclareDependency(TypedDict): class FuncDependency(TypedDict): default_options: T.Dict[OptionKey, options.ElementaryOptionValues] + allow_fallback: T.Optional[bool] diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py index 946635374..4f8e04fe1 100644 --- a/mesonbuild/interpreter/type_checking.py +++ b/mesonbuild/interpreter/type_checking.py @@ -898,4 +898,5 @@ PKGCONFIG_DEFINE_KW: KwargInfo = KwargInfo( DEPENDENCY_KWS: T.List[KwargInfo] = [ DEFAULT_OPTIONS.evolve(since='0.38.0'), + KwargInfo('allow_fallback', (bool, NoneType), since='0.56.0'), ] -- cgit v1.2.3