diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-04-07 22:12:04 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-04-07 22:12:04 +0000 |
commit | 2527a0bc8f3fc9be217e0ab5b31468d2b36718f6 (patch) | |
tree | 55051cc2030ba83675eecf9719c009d1a7de8a33 /pym/portage/getbinpkg.py | |
parent | 8b0e7e592421a32bbc1740aac7f5c428fa6f5944 (diff) | |
download | portage-2527a0bc8f3fc9be217e0ab5b31468d2b36718f6.tar.gz portage-2527a0bc8f3fc9be217e0ab5b31468d2b36718f6.tar.bz2 portage-2527a0bc8f3fc9be217e0ab5b31468d2b36718f6.zip |
* Optimize metadata caching in pordbapi and bindbapi so that cache is
never pulled for the same package twice.
* Cache a Package instances constructed during package selection
and reuse them during later package selections.
svn path=/main/trunk/; revision=9741
Diffstat (limited to 'pym/portage/getbinpkg.py')
-rw-r--r-- | pym/portage/getbinpkg.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/pym/portage/getbinpkg.py b/pym/portage/getbinpkg.py index 147007659..376767957 100644 --- a/pym/portage/getbinpkg.py +++ b/pym/portage/getbinpkg.py @@ -667,10 +667,14 @@ def _cmp_cpv(d1, d2): class PackageIndex(object): - def __init__(self, default_pkg_data=None, inherited_keys=None): + def __init__(self, default_header_data=None, default_pkg_data=None, + inherited_keys=None): + self._default_header_data = default_header_data self._default_pkg_data = default_pkg_data self._inherited_keys = inherited_keys self.header = {} + if self._default_header_data: + self.header.update(self._default_header_data) self.packages = [] self.modified = True @@ -725,7 +729,8 @@ class PackageIndex(object): self.header["PACKAGES"] = str(len(self.packages)) keys = self.header.keys() keys.sort() - self._writepkgindex(pkgfile, [(k, self.header[k]) for k in keys]) + self._writepkgindex(pkgfile, [(k, self.header[k]) \ + for k in keys if self.header[k]]) for metadata in sorted(self.packages, _cmp_cpv): metadata = metadata.copy() cpv = metadata["CPV"] |