aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreterbase.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2019-12-09 23:17:25 +0100
committerDaniel Mensinger <daniel@mensinger-ka.de>2020-03-02 10:47:20 +0100
commitab988198c7aa5bec33057fabf2b5f68e847d67d2 (patch)
treeb7b5df831d99b9110bf0712e40da2107143388f6 /mesonbuild/interpreterbase.py
parentad5df1b9c3fd9e853a6dc9a06964e2624cabb85b (diff)
downloadmeson-ab988198c7aa5bec33057fabf2b5f68e847d67d2.zip
meson-ab988198c7aa5bec33057fabf2b5f68e847d67d2.tar.gz
meson-ab988198c7aa5bec33057fabf2b5f68e847d67d2.tar.bz2
review: Initial fixup
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r--mesonbuild/interpreterbase.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py
index a3f0fb9..db77266 100644
--- a/mesonbuild/interpreterbase.py
+++ b/mesonbuild/interpreterbase.py
@@ -19,8 +19,9 @@ from . import mparser, mesonlib, mlog
from . import environment, dependencies
import os, copy, re
+import collections.abc
from functools import wraps
-from typing import Any, Callable, Dict, List, Set, Sequence, Tuple, Optional, Union
+from typing import Any, Callable, ClassVar, Dict, Generic, List, Set, Sequence, Tuple, TypeVar, Optional, Union
class InterpreterObject:
def __init__(self):
@@ -37,7 +38,9 @@ class InterpreterObject:
return method(args, kwargs)
raise InvalidCode('Unknown method "%s" in object.' % method_name)
-class ObjectHolder:
+TV_InterpreterObject = TypeVar('TV_InterpreterObject')
+
+class ObjectHolder(Generic[TV_InterpreterObject]):
def __init__(self, obj: InterpreterObject, subproject: Optional[str] = None):
self.held_object = obj # type: InterpreterObject
self.subproject = subproject # type: str
@@ -125,7 +128,7 @@ def flatten(args: Union[TYPE_nvar, List[TYPE_nvar]]) -> List[TYPE_nvar]:
if isinstance(args, mparser.StringNode):
assert isinstance(args.value, str)
return [args.value]
- if isinstance(args, (int, float, bool, str, ObjectHolder, mparser.BaseNode, mesonlib.File, InterpreterObject)):
+ if not isinstance(args, collections.abc.Sequence):
return [args]
result = [] # type: List[TYPE_nvar]
for a in args:
@@ -203,7 +206,7 @@ class FeatureCheckBase:
# Class variable, shared across all instances
#
# Format: {subproject: {feature_version: set(feature_names)}}
- feature_registry = {} # type: Dict[str, Dict[str, Set[str]]]
+ feature_registry = {} # type: ClassVar[Dict[str, Dict[str, Set[str]]]]
def __init__(self, feature_name: str, version: str) -> None:
self.feature_name = feature_name # type: str