aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2021-08-10 12:10:28 -0700
committerDaniel Mensinger <daniel@mensinger-ka.de>2021-08-20 18:57:19 +0200
commitdffa93b8530c941f0c8d6bad96eb6cd0489bef27 (patch)
tree6ac56808b6ea024eb3be0bb9d18f74b69344f7d3
parentf6f35aa906c8ebac21af07c17449df65d08aeaeb (diff)
downloadmeson-dffa93b8530c941f0c8d6bad96eb6cd0489bef27.zip
meson-dffa93b8530c941f0c8d6bad96eb6cd0489bef27.tar.gz
meson-dffa93b8530c941f0c8d6bad96eb6cd0489bef27.tar.bz2
backend/backends: use a TypedDict for introspection data
Which is easier to reason about as a human, and narrower, allowing for more accurate type checking.
-rw-r--r--mesonbuild/backend/backends.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 21e45bd..658f031 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -45,6 +45,16 @@ if T.TYPE_CHECKING:
from ..mesonlib import FileMode, FileOrString
from ..wrap import WrapMode
+ from typing_extensions import TypedDict
+
+ class TargetIntrospectionData(TypedDict):
+
+ language: str
+ compiler : T.List[str]
+ parameters: T.List[str]
+ sources: T.List[str]
+ generated_sources: T.List[str]
+
# Languages that can mix with C or C++ but don't support unity builds yet
# because the syntax we use for unity builds is specific to C/++/ObjC/++.
@@ -1666,7 +1676,7 @@ class Backend:
i = SubdirInstallData(src_dir, dst_dir, sd.install_mode, sd.exclude, sd.subproject)
d.install_subdirs.append(i)
- def get_introspection_data(self, target_id: str, target: build.Target) -> T.List[T.Dict[str, T.Union[bool, str, T.List[T.Union[str, T.Dict[str, T.Union[str, T.List[str], bool]]]]]]]:
+ def get_introspection_data(self, target_id: str, target: build.Target) -> T.List['TargetIntrospectionData']:
'''
Returns a list of source dicts with the following format for a given target:
[