From b126f39af5f6b7eb3eec5a001bcef4e5ec61068a Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 19 Feb 2009 03:53:21 +0000 Subject: [PATCH] Fix classes that implement __iter__() to copy it to their keys() method when running under >=python-3.0. svn path=/main/trunk/; revision=12632 --- pym/portage/cache/mappings.py | 9 +++++++++ pym/portage/cache/sql_template.py | 1 + 2 files changed, 10 insertions(+) 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__ -- 2.26.2