From 42e5e4faa76032f0d3738bc4483415580ee36985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= Date: Tue, 6 Apr 2021 17:09:22 +0100 Subject: [PATCH] add some reprs. --- ognibuild/buildlog.py | 2 +- ognibuild/debian/apt.py | 11 +++++++++-- ognibuild/requirements.py | 15 +++++++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/ognibuild/buildlog.py b/ognibuild/buildlog.py index f0a2fba..e3110ee 100644 --- a/ognibuild/buildlog.py +++ b/ognibuild/buildlog.py @@ -188,7 +188,7 @@ def problem_to_upstream_requirement(problem): # noqa: C901 return PerlPreDeclaredRequirement(problem.name) elif isinstance(problem, MissingCargoCrate): # TODO(jelmer): handle problem.requirements - return CargoCrateRequirement(problem.name) + return CargoCrateRequirement(problem.crate) elif isinstance(problem, MissingSetupPyCommand): if problem.command == "test": return PythonPackageRequirement("setuptools") diff --git a/ognibuild/debian/apt.py b/ognibuild/debian/apt.py index c7926ae..1e704b0 100644 --- a/ognibuild/debian/apt.py +++ b/ognibuild/debian/apt.py @@ -82,12 +82,19 @@ class AptManager(object): ] return self._searchers - def package_exists(self, package): + @property + def apt_cache(self): if self._apt_cache is None: import apt self._apt_cache = apt.Cache(rootdir=self.session.location) - return package in self._apt_cache + return self._apt_cache + + def package_exists(self, package): + return package in self.apt_cache + + def package_versions(self, package): + return list(self.apt_cache[package].versions) def get_packages_for_paths(self, paths, regex=False, case_insensitive=False): logging.debug("Searching for packages containing %r", paths) diff --git a/ognibuild/requirements.py b/ognibuild/requirements.py index 8b74c69..858ad09 100644 --- a/ognibuild/requirements.py +++ b/ognibuild/requirements.py @@ -281,6 +281,10 @@ class PkgConfigRequirement(Requirement): self.module = module self.minimum_version = minimum_version + def __repr__(self): + return "%s(%r, minimum_version=%r)" % ( + type(self).__name__, self.module, self.minimum_version) + class PathRequirement(Requirement): @@ -290,6 +294,9 @@ class PathRequirement(Requirement): super(PathRequirement, self).__init__("path") self.path = path + def __repr__(self): + return "%s(%r)" % (type(self).__name__, self.path) + class CHeaderRequirement(Requirement): @@ -299,6 +306,9 @@ class CHeaderRequirement(Requirement): super(CHeaderRequirement, self).__init__("c-header") self.header = header + def __repr__(self): + return "%s(%r)" % (type(self).__name__, self.header) + class JavaScriptRuntimeRequirement(Requirement): def __init__(self): @@ -659,3 +669,8 @@ class PythonModuleRequirement(Requirement): ) p.communicate() return p.returncode == 0 + + def __repr__(self): + return "%s(%r, python_version=%r, minimum_version=%r)" % ( + type(self).__name__, self.module, self.python_version, + self.minimum_version)