diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2023-01-29 13:48:22 -0500 |
---|---|---|
committer | Eli Schwartz <eschwartz@archlinux.org> | 2023-06-26 13:10:33 -0400 |
commit | b8b2d87567af8e7f556e290c3585e7ac462679b6 (patch) | |
tree | 8ee2b80546ceecccc5446ed8d89694778ae91c37 /mesonbuild/dependencies/detect.py | |
parent | b1ddfabf8fbb0561a584bd7cfe2bb712b4105da2 (diff) | |
download | meson-b8b2d87567af8e7f556e290c3585e7ac462679b6.zip meson-b8b2d87567af8e7f556e290c3585e7ac462679b6.tar.gz meson-b8b2d87567af8e7f556e290c3585e7ac462679b6.tar.bz2 |
dependencies: switch the delayed-import mechanism for custom dependencies
Simply store the module it is expected to be found in. That module then
appends to the packages dict, which guarantees mypy can verify that
it's got the right type -- there is no casting needed.
Diffstat (limited to 'mesonbuild/dependencies/detect.py')
-rw-r--r-- | mesonbuild/dependencies/detect.py | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/mesonbuild/dependencies/detect.py b/mesonbuild/dependencies/detect.py index a10131d..9428d54 100644 --- a/mesonbuild/dependencies/detect.py +++ b/mesonbuild/dependencies/detect.py @@ -35,12 +35,10 @@ class DependencyPackages(collections.UserDict): def __missing__(self, key: str) -> PackageTypes: if key in self.defaults: - modn, package = self.defaults[key].split(':', maxsplit=1) - mod = importlib.import_module(f'mesonbuild.dependencies.{modn}') - value = T.cast('PackageTypes', getattr(mod, package)) - self.data[key] = value + modn = self.defaults[key] + importlib.import_module(f'mesonbuild.dependencies.{modn}') - return value + return self.data[key] raise KeyError(key) def __contains__(self, key: object) -> bool: |