diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-04-07 23:10:30 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-04-07 23:10:30 +0000 |
commit | 5053cb60a46add9f54ea6678d7ff6da040119df7 (patch) | |
tree | 86387cafb8c607ad4857c508302025d4528f19e1 /pym/portage/getbinpkg.py | |
parent | 2527a0bc8f3fc9be217e0ab5b31468d2b36718f6 (diff) | |
download | portage-5053cb60a46add9f54ea6678d7ff6da040119df7.tar.gz portage-5053cb60a46add9f54ea6678d7ff6da040119df7.tar.bz2 portage-5053cb60a46add9f54ea6678d7ff6da040119df7.zip |
When reading and writing the Packages index file, translate metadata keys
on the fly. Current translations:
DESC <-> DESCRIPTION
REPO <-> repository
svn path=/main/trunk/; revision=9742
Diffstat (limited to 'pym/portage/getbinpkg.py')
-rw-r--r-- | pym/portage/getbinpkg.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/pym/portage/getbinpkg.py b/pym/portage/getbinpkg.py index 376767957..9e03b1f0e 100644 --- a/pym/portage/getbinpkg.py +++ b/pym/portage/getbinpkg.py @@ -668,10 +668,15 @@ def _cmp_cpv(d1, d2): class PackageIndex(object): def __init__(self, default_header_data=None, default_pkg_data=None, - inherited_keys=None): + inherited_keys=None, translated_keys=None): self._default_header_data = default_header_data self._default_pkg_data = default_pkg_data self._inherited_keys = inherited_keys + self._write_translation_map = {} + self._read_translation_map = {} + if translated_keys: + self._write_translation_map.update(translated_keys) + self._read_translation_map.update(((y, x) for (x, y) in translated_keys)) self.header = {} if self._default_header_data: self.header.update(self._default_header_data) @@ -690,12 +695,13 @@ class PackageIndex(object): k, v = line if v: v = v[1:] - d[k] = v + d[self._read_translation_map.get(k, k)] = v return d - + def _writepkgindex(self, pkgfile, items): for k, v in items: - pkgfile.write("%s: %s\n" % (k, v)) + pkgfile.write("%s: %s\n" % \ + (self._write_translation_map.get(k, k), v)) pkgfile.write("\n") def read(self, pkgfile): |