From: Zac Medico Date: Wed, 11 Mar 2009 05:45:49 +0000 (-0000) Subject: Fix classes that implement __iter__() to copy it to their keys() method X-Git-Tag: v2.1.6.8~172 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=fc2e5227451c6a4838bc26e85792c9e247627d69;p=portage.git Fix classes that implement __iter__() to copy it to their keys() method when running under >=python-3.0. (trunk r12632) svn path=/main/branches/2.1.6/; revision=12905 --- diff --git a/pym/portage/cache/mappings.py b/pym/portage/cache/mappings.py index a767e1bc5..5fe836daa 100644 --- a/pym/portage/cache/mappings.py +++ b/pym/portage/cache/mappings.py @@ -165,6 +165,9 @@ class UserDict(MutableMapping): def clear(self): self.data.clear() + if sys.hexversion >= 0x3000000: + keys = __iter__ + class ProtectedDict(MutableMapping): """ given an initial dict, this wraps that dict storing changes in a secondary dict, protecting @@ -218,6 +221,9 @@ class ProtectedDict(MutableMapping): DeprecationWarning) return key in self + if sys.hexversion >= 0x3000000: + keys = __iter__ + class LazyLoad(Mapping): """ Lazy loading of values for a dict @@ -259,6 +265,9 @@ class LazyLoad(Mapping): self.pull = None return key in self.d + if sys.hexversion >= 0x3000000: + keys = __iter__ + _slot_dict_classes = weakref.WeakValueDictionary() def slot_dict_class(keys, prefix="_val_"): diff --git a/pym/portage/cache/sql_template.py b/pym/portage/cache/sql_template.py index e5903cd67..47bef9124 100644 --- a/pym/portage/cache/sql_template.py +++ b/pym/portage/cache/sql_template.py @@ -280,3 +280,4 @@ class SQLDatabase(template.database): if sys.hexversion >= 0x3000000: items = iteritems + keys = __iter__