diff options
Diffstat (limited to 'mesonbuild/interpreterbase')
-rw-r--r-- | mesonbuild/interpreterbase/__init__.py | 4 | ||||
-rw-r--r-- | mesonbuild/interpreterbase/_unholder.py | 10 |
2 files changed, 6 insertions, 8 deletions
diff --git a/mesonbuild/interpreterbase/__init__.py b/mesonbuild/interpreterbase/__init__.py index e630bbf..f237c2f 100644 --- a/mesonbuild/interpreterbase/__init__.py +++ b/mesonbuild/interpreterbase/__init__.py @@ -42,7 +42,7 @@ __all__ = [ 'stringArgs', 'noArgsFlattening', 'noSecondLevelHolderResolving', - 'permissive_unholder_return', + 'unholder_return', 'disablerIfNotFound', 'permittedKwargs', 'typed_operator', @@ -102,7 +102,7 @@ from .decorators import ( stringArgs, noArgsFlattening, noSecondLevelHolderResolving, - permissive_unholder_return, + unholder_return, disablerIfNotFound, permittedKwargs, typed_pos_args, diff --git a/mesonbuild/interpreterbase/_unholder.py b/mesonbuild/interpreterbase/_unholder.py index 55f3423..202f53b 100644 --- a/mesonbuild/interpreterbase/_unholder.py +++ b/mesonbuild/interpreterbase/_unholder.py @@ -18,20 +18,18 @@ from ..mesonlib import HoldableObject, MesonBugException import typing as T -def _unholder(obj: T.Union[TYPE_var, InterpreterObject], *, permissive: bool = False) -> TYPE_var: - if isinstance(obj, (bool, str)): +def _unholder(obj: T.Union[TYPE_var, InterpreterObject]) -> TYPE_var: + if isinstance(obj, str): return obj elif isinstance(obj, list): - return [_unholder(x, permissive=permissive) for x in obj] + return [_unholder(x) for x in obj] elif isinstance(obj, dict): - return {k: _unholder(v, permissive=permissive) for k, v in obj.items()} + return {k: _unholder(v) for k, v in obj.items()} elif isinstance(obj, ObjectHolder): assert isinstance(obj.held_object, HoldableTypes) return obj.held_object elif isinstance(obj, MesonInterpreterObject): return obj - elif isinstance(obj, HoldableObject) and permissive: - return obj elif isinstance(obj, HoldableObject): raise MesonBugException(f'Argument {obj} of type {type(obj).__name__} is not held by an ObjectHolder.') elif isinstance(obj, InterpreterObject): |