summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-03-11 06:48:54 +0000
committerZac Medico <zmedico@gentoo.org>2009-03-11 06:48:54 +0000
commitce48667313ddbdcde946910837b81fd195282d40 (patch)
tree22de66ae67b40f519e59f06ba27037c11c018d7d /pym
parent64a97f9375e49276adb0d5b8e4bd0f3b1ac54998 (diff)
downloadportage-ce48667313ddbdcde946910837b81fd195282d40.tar.gz
portage-ce48667313ddbdcde946910837b81fd195282d40.tar.bz2
portage-ce48667313ddbdcde946910837b81fd195282d40.zip
Implement _getitem instead of __getitem__ so that the base class __getitem__
implementation is used for _mtime_ and _eclasses_ handling. (trunk r12781) svn path=/main/branches/2.1.6/; revision=13025
Diffstat (limited to 'pym')
-rw-r--r--pym/portage/cache/flat_hash.py24
-rw-r--r--pym/portage/cache/metadata.py5
2 files changed, 6 insertions, 23 deletions
diff --git a/pym/portage/cache/flat_hash.py b/pym/portage/cache/flat_hash.py
index f6bf6d078..ac1b7f190 100644
--- a/pym/portage/cache/flat_hash.py
+++ b/pym/portage/cache/flat_hash.py
@@ -23,26 +23,16 @@ class database(fs_template.FsBased):
if not self.readonly and not os.path.exists(self.location):
self._ensure_dirs()
- def __getitem__(self, cpv):
+ def _getitem(self, cpv):
fp = os.path.join(self.location, cpv)
try:
myf = open(fp, "r")
try:
d = self._parse_data(myf, cpv)
- if "_mtime_" not in d:
- """Backward compatibility with old cache that uses mtime
- mangling."""
- d["_mtime_"] = long(os.fstat(myf.fileno()).st_mtime)
- mtime = d.get('_mtime_')
- if mtime is None:
- raise cache_errors.CacheCorruption(cpv,
- '_mtime_ field is missing')
- try:
- mtime = long(mtime)
- except ValueError:
- raise cache_errors.CacheCorruption(cpv,
- '_mtime_ conversion to long failed: %s' % (mtime,))
- d['_mtime_'] = mtime
+ if '_mtime_' not in d:
+ # Backward compatibility with old cache
+ # that uses mtime mangling.
+ d['_mtime_'] = long(os.fstat(myf.fileno()).st_mtime)
return d
finally:
myf.close()
@@ -57,10 +47,6 @@ class database(fs_template.FsBased):
except ValueError, e:
# If a line is missing an "=", the split length is 1 instead of 2.
raise cache_errors.CacheCorruption(cpv, e)
- if "_eclasses_" in d:
- d["_eclasses_"] = reconstruct_eclasses(cpv, d["_eclasses_"])
- else:
- d["_eclasses_"] = {}
return d
def _setitem(self, cpv, values):
diff --git a/pym/portage/cache/metadata.py b/pym/portage/cache/metadata.py
index 22cf51e56..4f74b767d 100644
--- a/pym/portage/cache/metadata.py
+++ b/pym/portage/cache/metadata.py
@@ -21,6 +21,7 @@ class database(flat_hash.database):
'PDEPEND', 'PROVIDE', 'EAPI', 'PROPERTIES', 'DEFINED_PHASES')
autocommits = True
+ serialize_eclasses = False
_hashed_re = re.compile('^(\\w+)=([^\n]*)')
@@ -30,10 +31,6 @@ class database(flat_hash.database):
self.location = os.path.join(loc, "metadata","cache")
self.ec = portage.eclass_cache.cache(loc)
- def __getitem__(self, cpv):
- return flat_hash.database.__getitem__(self, cpv)
-
-
def _parse_data(self, data, cpv):
_hashed_re_match = self._hashed_re.match
data = list(data)