summaryrefslogtreecommitdiffstats
path: root/pym/portage/cache/mappings.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-06-26 00:49:10 +0000
committerZac Medico <zmedico@gentoo.org>2008-06-26 00:49:10 +0000
commit9a58611323e313a7a5d48fa65a316a3ffedc3954 (patch)
tree73d848b4919edd2e09d0c56fc9da1b7727a54177 /pym/portage/cache/mappings.py
parentd6b64ea06ff357b920b24a75f2c5ddf03674190d (diff)
downloadportage-9a58611323e313a7a5d48fa65a316a3ffedc3954.tar.gz
portage-9a58611323e313a7a5d48fa65a316a3ffedc3954.tar.bz2
portage-9a58611323e313a7a5d48fa65a316a3ffedc3954.zip
Make PackageIndex use SlotDict for package metadata storage. The set of
allowed keys is passed into the PackageIndex constructor (normal dict instances will be used if the set of keys is not passed in for some reason). A SlotDict.allowed_keys attribute now provides access to a frozenset of allowed keys. svn path=/main/trunk/; revision=10797
Diffstat (limited to 'pym/portage/cache/mappings.py')
-rw-r--r--pym/portage/cache/mappings.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/pym/portage/cache/mappings.py b/pym/portage/cache/mappings.py
index f35761765..2cddd8147 100644
--- a/pym/portage/cache/mappings.py
+++ b/pym/portage/cache/mappings.py
@@ -125,8 +125,9 @@ def slot_dict_class(keys):
class SlotDict(object):
- _keys = keys_set
- __slots__ = ("__weakref__",) + tuple("_val_" + k for k in _keys)
+ allowed_keys = keys_set
+ __slots__ = ("__weakref__",) + \
+ tuple("_val_" + k for k in allowed_keys)
def __iter__(self):
for k, v in self.iteritems():
@@ -142,7 +143,7 @@ def slot_dict_class(keys):
return list(self)
def iteritems(self):
- for k in self._keys:
+ for k in self.allowed_keys:
try:
yield (k, getattr(self, "_val_" + k))
except AttributeError:
@@ -229,12 +230,12 @@ def slot_dict_class(keys):
return c
def clear(self):
- for k in self._keys:
+ for k in self.allowed_keys:
try:
delattr(self, "_val_" + k)
except AttributeError:
pass
v = SlotDict
- _slot_dict_classes[keys_set] = v
+ _slot_dict_classes[v.allowed_keys] = v
return v