diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2021-08-10 12:10:28 -0700 |
---|---|---|
committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2021-08-20 18:57:19 +0200 |
commit | dffa93b8530c941f0c8d6bad96eb6cd0489bef27 (patch) | |
tree | 6ac56808b6ea024eb3be0bb9d18f74b69344f7d3 | |
parent | f6f35aa906c8ebac21af07c17449df65d08aeaeb (diff) | |
download | meson-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.py | 12 |
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: [ |