From 6898735370872391ea2beb19d7366070f207d170 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 7 Mar 2008 23:52:35 +0000 Subject: Convert PackageIndex.packages from a dict to a list so that in the future it will be possible to support multiple packages with the same cpv. svn path=/main/trunk/; revision=9452 --- pym/portage/getbinpkg.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'pym/portage/getbinpkg.py') diff --git a/pym/portage/getbinpkg.py b/pym/portage/getbinpkg.py index d2d1f75ab..e3f97e7a2 100644 --- a/pym/portage/getbinpkg.py +++ b/pym/portage/getbinpkg.py @@ -675,13 +675,23 @@ def writepkgindex(pkgfile, items): pkgfile.write("%s: %s\n" % (k, v)) pkgfile.write("\n") +def _cmp_cpv(d1, d2): + cpv1 = d1["CPV"] + cpv2 = d2["CPV"] + if cpv1 > cpv2: + return 1 + elif cpv1 == cpv2: + return 0 + else: + return -1 + class PackageIndex(object): def __init__(self, default_pkg_data=None, inherited_keys=None): self._default_pkg_data = default_pkg_data self._inherited_keys = inherited_keys self.header = {} - self.packages = {} + self.packages = [] self.modified = True def read(self, pkgfile): @@ -707,19 +717,18 @@ class PackageIndex(object): v = self.header.get(k) if v is not None: d.setdefault(k, v) - self.packages[mycpv] = d + self.packages.append(d) def write(self, pkgfile): - cpv_all = self.packages.keys() - cpv_all.sort() if self.modified: self.header["TIMESTAMP"] = str(long(time.time())) - self.header["PACKAGES"] = str(len(cpv_all)) + self.header["PACKAGES"] = str(len(self.packages)) keys = self.header.keys() keys.sort() writepkgindex(pkgfile, [(k, self.header[k]) for k in keys]) - for cpv in cpv_all: - metadata = self.packages[cpv].copy() + for metadata in sorted(self.packages, _cmp_cpv): + metadata = metadata.copy() + cpv = metadata["CPV"] if self._inherited_keys: for k in self._inherited_keys: v = self.header.get(k) -- cgit v1.2.3-1-g7c22