[Checkins] SVN: BTrees/branches/py3k/ Special-case Py3k dicts in _SetIterator.

Tres Seaver cvs-admin at zope.org
Wed Dec 12 14:41:00 UTC 2012


Log message for revision 128615:
  Special-case Py3k dicts in _SetIterator.
  
  They don't have 'iteritems', and their 'items' returns a custom iterable.

Changed:
  _U  BTrees/branches/py3k/
  U   BTrees/branches/py3k/BTrees/_base.py

-=-
Modified: BTrees/branches/py3k/BTrees/_base.py
===================================================================
--- BTrees/branches/py3k/BTrees/_base.py	2012-12-12 14:40:59 UTC (rev 128614)
+++ BTrees/branches/py3k/BTrees/_base.py	2012-12-12 14:40:59 UTC (rev 128615)
@@ -21,6 +21,7 @@
 from persistent import Persistent
 
 from .Interfaces import BTreesConflictError
+from ._compat import PY3
 from ._compat import cmp
 from ._compat import int_types
 from ._compat import xrange
@@ -175,8 +176,11 @@
             try:
                 itmeth = to_iterate.iteritems
             except AttributeError:
-                itmeth = to_iterate.__iter__
-                useValues = False
+                if PY3 and isinstance(to_iterate, dict): #pragma NO COVER Py3k
+                    itmeth = to_iterate.items().__iter__
+                else:
+                    itmeth = to_iterate.__iter__
+                    useValues = False
             else:
                 self.value = None
         else:



More information about the checkins mailing list