[Piuparts-commits] [SCM] piuparts git repository branch, develop, updated. 0.53-11-g891122c
Holger Levsen
holger at layer-acht.org
Mon Jun 17 15:55:58 UTC 2013
The following commit has been merged in the develop branch:
commit 5518d2adcf808a97ada2b11f124a88cf84d97d63
Author: David Steele <dsteele at gmail.com>
Date: Wed Feb 27 19:07:09 2013 -0500
packagesdb - Refactor out get_rdep_dict() from calc_rrdep_counts().
Also, cache the dictionary for performance.
diff --git a/piupartslib/packagesdb.py b/piupartslib/packagesdb.py
index 187b966..c2f1fa6 100644
--- a/piupartslib/packagesdb.py
+++ b/piupartslib/packagesdb.py
@@ -320,6 +320,7 @@ class PackagesDB:
self._dependency_databases = []
self._recycle_mode = False
self._candidates_for_testing = None
+ self._rdeps = None
self.set_subdirs(ok="pass", fail="fail", evil="untestable",
reserved="reserved", morefail=["bugged", "affected"],
recycle="recycle")
@@ -758,25 +759,31 @@ class PackagesDB:
else:
raise LogfileExists(self._evil, package, version)
+ def _get_rdep_dict(self):
+ """Return dict of one-level reverse dependencies by package"""
+
+ if self._rdeps is None:
+ self._find_all_packages() # populate _packages
+
+ self._rdeps = {}
+ for pkg_name in self._packages.keys():
+ # use the Packages dependencies() method for a conservative count
+ for dep in self._packages[pkg_name].dependencies():
+ if dep in self._rdeps:
+ self._rdeps[dep].append( pkg_name )
+ else:
+ self._rdeps[dep] = [pkg_name]
+
+ return( self._rdeps )
+
def calc_rrdep_counts(self):
"""Calculate recursive reverse dependency counts for Packages"""
- self._find_all_packages() # populate _packages
self._compute_package_states() # populate _package_state
error_states = self.get_error_states()
waiting_states = self.get_waiting_states()
- # create a reverse dependency dictionary.
- # entries consist of a one-level list of reverse dependency package names,
- # by package name
- rdeps = {}
- for pkg_name in self._packages.keys():
- # use the Packages dependencies() method for a conservative count
- for dep in self._packages[pkg_name].dependencies():
- if dep in rdeps:
- rdeps[dep].append(pkg_name)
- else:
- rdeps[dep] = [pkg_name]
+ rdeps = self._get_rdep_dict()
def recurse_rdeps(pkg_name, rdeps, rrdep_dict):
""" Recurse through the reverse dep arrays to determine the recursive
--
piuparts git repository
More information about the Piuparts-commits
mailing list