[Yum-devel] [PATCH 1/2] Add returnInstalledPackageByDep() to pair with returnPackageByDep().
James Antill
james at and.org
Wed Sep 28 16:05:12 UTC 2011
---
yum/__init__.py | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/yum/__init__.py b/yum/__init__.py
index 5fb7c00..cc968fd 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -3459,6 +3459,34 @@ class YumBase(depsolve.Depsolve):
return self.rpmdb.getProvides(depname, depflags, depver).keys()
+ def returnInstalledPackageByDep(self, depstring):
+ """Return the best, or first, installed package object that provides the
+ given dependencies.
+
+ :param depstring: a string specifying the dependency to return
+ the package that fulfils
+ :return: the best, or first, installed package that fulfils the given
+ dependency
+ :raises: a :class:`yum.Errors.YumBaseError` if no packages that
+ fulfil the given dependency can be found
+ """
+ # we get all sorts of randomness here
+ errstring = depstring
+ if type(depstring) not in types.StringTypes:
+ errstring = str(depstring)
+
+ try:
+ pkglist = self.returnInstalledPackagesByDep(depstring)
+ except Errors.YumBaseError:
+ raise Errors.YumBaseError, _('No Package found for %s') % errstring
+
+ ps = ListPackageSack(pkglist)
+ result = self._bestPackageFromList(ps.returnNewestByNameArch())
+ if result is None:
+ raise Errors.YumBaseError, _('No Package found for %s') % errstring
+
+ return result
+
def _bestPackageFromList(self, pkglist):
"""take list of package objects and return the best package object.
If the list is empty, return None.
--
1.7.6.2
More information about the Yum-devel
mailing list