From 4938f8ffe7d95467c19c0dc1a49d6f26ef9a0354 Mon Sep 17 00:00:00 2001 From: Evgenii Alekseev Date: Wed, 11 Sep 2024 03:14:23 +0300 Subject: [PATCH] simplify typed get --- src/ahriman/models/package.py | 14 +++++++------- src/ahriman/models/pkgbuild.py | 7 ++----- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/ahriman/models/package.py b/src/ahriman/models/package.py index e9dd4a4b..20f20f77 100644 --- a/src/ahriman/models/package.py +++ b/src/ahriman/models/package.py @@ -267,9 +267,9 @@ class Package(LazyLogging): for package, properties in pkgbuild.packages().items() } version = full_version( - pkgbuild.get_as("epoch", str, default=None), - pkgbuild.get_as("pkgver", str), - pkgbuild.get_as("pkgrel", str), + pkgbuild.get_as("epoch", default=None), + pkgbuild.get_as("pkgver"), + pkgbuild.get_as("pkgrel"), ) remote = RemoteSource( @@ -281,7 +281,7 @@ class Package(LazyLogging): ) return cls( - base=pkgbuild.get_as("pkgbase", str), + base=pkgbuild.get_as("pkgbase"), version=version, remote=remote, packages=packages, @@ -440,9 +440,9 @@ class Package(LazyLogging): pkgbuild = Pkgbuild.from_file(paths.cache_for(self.base) / "PKGBUILD") return full_version( - pkgbuild.get_as("epoch", str, default=None), - pkgbuild.get_as("pkgver", str), - pkgbuild.get_as("pkgrel", str), + pkgbuild.get_as("epoch", default=None), + pkgbuild.get_as("pkgver"), + pkgbuild.get_as("pkgrel"), ) except Exception: self.logger.exception("cannot determine version of VCS package") diff --git a/src/ahriman/models/pkgbuild.py b/src/ahriman/models/pkgbuild.py index da45a96b..9fffbce1 100644 --- a/src/ahriman/models/pkgbuild.py +++ b/src/ahriman/models/pkgbuild.py @@ -227,13 +227,12 @@ class Pkgbuild(Mapping[str, str | list[str]]): case None: raise StopIteration - def get_as(self, key: str, return_type: type[T], **kwargs: T | U) -> T | U: + def get_as(self, key: str, **kwargs: T | U) -> T | U: """ type guard for getting value by key Args: key(str): key name - return_type(type[T]): return type, either ``str`` or ``list[str]`` default(U, optional): default value to return if no key found Returns: @@ -242,8 +241,6 @@ class Pkgbuild(Mapping[str, str | list[str]]): Raises: KeyError: if no key found and no default has been provided """ - del return_type - if key not in self: if "default" in kwargs: return kwargs["default"] @@ -262,7 +259,7 @@ class Pkgbuild(Mapping[str, str | list[str]]): def io(package_name: str) -> IO[str]: # try to read package specific function and fallback to default otherwise - content = self.get_as(f"package_{package_name}", str, default=None) or self.get_as("package", str) + content = self.get_as(f"package_{package_name}", default=None) or self.get_as("package") return StringIO(content) return {package: self.from_io(io(package)) for package in packages}