diff options
author | Brian Harring <ferringb@gentoo.org> | 2005-12-18 11:02:51 +0000 |
---|---|---|
committer | Brian Harring <ferringb@gentoo.org> | 2005-12-18 11:02:51 +0000 |
commit | 01c1fc474258b88b84b836c8ac64b0390c32d9a8 (patch) | |
tree | c339e5111c83cc39763e457d291a06d8ce6c6a89 /pym/cache/anydbm.py | |
parent | f3de6b783521b08735e9117e36bb0d0fa718066d (diff) | |
download | portage-01c1fc474258b88b84b836c8ac64b0390c32d9a8.tar.gz portage-01c1fc474258b88b84b836c8ac64b0390c32d9a8.tar.bz2 portage-01c1fc474258b88b84b836c8ac64b0390c32d9a8.zip |
couple of tweaks. fixed up whitespacing for template, added a default __contains__ func to the template,
finally added serialize_eclasses class attribute; controls whether __(get|set)item__ do _eclasses_ mangling on their own, or
leave it to the child class.
updated anydbm to handle serializing itself
svn path=/main/trunk/; revision=2395
Diffstat (limited to 'pym/cache/anydbm.py')
-rw-r--r-- | pym/cache/anydbm.py | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/pym/cache/anydbm.py b/pym/cache/anydbm.py index 28d1a889e..2959e41e5 100644 --- a/pym/cache/anydbm.py +++ b/pym/cache/anydbm.py @@ -18,6 +18,7 @@ class database(fs_template.FsBased): autocommits = True cleanse_keys = True + serialize_eclasses = False def __init__(self, *args, **config): super(database,self).__init__(*args, **config) @@ -50,13 +51,9 @@ class database(fs_template.FsBased): def iteritems(self): return self.__db.iteritems() - def __getitem__(self, cpv): + def _getitem(self, cpv): # we override getitem because it's just a cpickling of the data handed in. - d = pickle.loads(self.__db[cpv]) - if "_eclasses_" in d: - d["_eclasses_"] = reconstruct_eclasses(cpv, d["_eclasses_"]) - return d - + return pickle.loads(self.__db[cpv]) def _setitem(self, cpv, values): self.__db[cpv] = pickle.dumps(values,pickle.HIGHEST_PROTOCOL) @@ -64,15 +61,12 @@ class database(fs_template.FsBased): def _delitem(self, cpv): del self.__db[cpv] - def iterkeys(self): return iter(self.__db) - def has_key(self, cpv): return cpv in self.__db - def __del__(self): if "__db" in self.__dict__ and self.__db != None: self.__db.sync() |