aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2021-04-30 12:47:13 -0700
committerDylan Baker <dylan@pnwbakers.com>2021-06-02 15:53:17 -0700
commitcfb847a1f0815c40f2b1538b53eb22ace10be7c5 (patch)
tree47820ad6b6eca9c43f5467075d6228c22cfee602
parent113a1595149b72ee0a572ed215db616c5a6d8a20 (diff)
downloadmeson-cfb847a1f0815c40f2b1538b53eb22ace10be7c5.zip
meson-cfb847a1f0815c40f2b1538b53eb22ace10be7c5.tar.gz
meson-cfb847a1f0815c40f2b1538b53eb22ace10be7c5.tar.bz2
build: use typing.Mapping for lru_cached dicts
Thankfully the typing module provides us an immutable protocol for mappings, so we don't have to write one ourselves.
-rw-r--r--mesonbuild/build.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index aec9ae3..51b6d29 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -916,12 +916,12 @@ class BuildTarget(Target):
result += i.get_all_link_deps()
return result
- def get_link_deps_mapping(self, prefix, environment):
+ def get_link_deps_mapping(self, prefix: str, environment: environment.Environment) -> T.Mapping[str, str]:
return self.get_transitive_link_deps_mapping(prefix, environment)
@lru_cache(maxsize=None)
- def get_transitive_link_deps_mapping(self, prefix, environment):
- result = {}
+ def get_transitive_link_deps_mapping(self, prefix: str, environment: environment.Environment) -> T.Mapping[str, str]:
+ result: T.Dict[str, str] = {}
for i in self.link_targets:
mapping = i.get_link_deps_mapping(prefix, environment)
#we are merging two dictionaries, while keeping the earlier one dominant
@@ -932,7 +932,7 @@ class BuildTarget(Target):
@lru_cache(maxsize=None)
def get_link_dep_subdirs(self):
- result = OrderedSet()
+ result: OrderedSet[str] = OrderedSet()
for i in self.link_targets:
if not isinstance(i, StaticLibrary):
result.add(i.get_subdir())
@@ -1831,7 +1831,7 @@ class StaticLibrary(BuildTarget):
if not isinstance(self.prelink, bool):
raise InvalidArguments('Prelink keyword argument must be a boolean.')
- def get_link_deps_mapping(self, prefix, environment):
+ def get_link_deps_mapping(self, prefix: str, environment: environment.Environment) -> T.Mapping[str, str]:
return {}
def get_default_install_dir(self, environment):
@@ -1886,7 +1886,7 @@ class SharedLibrary(BuildTarget):
self.basic_filename_tpl = '{0.prefix}{0.name}.{0.suffix}'
self.determine_filenames(environment)
- def get_link_deps_mapping(self, prefix, environment) -> T.Dict[str, str]:
+ def get_link_deps_mapping(self, prefix: str, environment: environment.Environment) -> T.Mapping[str, str]:
result: T.Dict[str, str] = {}
mappings = self.get_transitive_link_deps_mapping(prefix, environment)
old = get_target_macos_dylib_install_name(self)
@@ -2433,7 +2433,7 @@ class CustomTarget(Target, CommandBase):
if suf == '.a' or suf == '.dll' or suf == '.lib' or suf == '.so' or suf == '.dylib':
return True
- def get_link_deps_mapping(self, prefix, environment):
+ def get_link_deps_mapping(self, prefix: str, environment: environment.Environment) -> T.Mapping[str, str]:
return {}
def get_link_dep_subdirs(self):
@@ -2565,7 +2565,7 @@ class CustomTargetIndex:
the sources.
"""
- def __init__(self, target, output):
+ def __init__(self, target: CustomTarget, output: int):
self.typename = 'custom'
self.target = target
self.output = output
@@ -2590,7 +2590,7 @@ class CustomTargetIndex:
def get_all_link_deps(self):
return self.target.get_all_link_deps()
- def get_link_deps_mapping(self, prefix, environment):
+ def get_link_deps_mapping(self, prefix: str, environment: environment.Environment) -> T.Mapping[str, str]:
return self.target.get_link_deps_mapping(prefix, environment)
def get_link_dep_subdirs(self):