[Checkins] SVN: z3c.pt/trunk/src/z3c/pt/utils.py We used to do iterable.__iter__() but, e.g. BTreeItems

Chris McDonough chrism at plope.com
Sat Aug 16 01:50:06 EDT 2008


Log message for revision 89903:
  We used to do iterable.__iter__() but, e.g. BTreeItems
  objects are iterable (via __getitem__) but don't possess
  an __iter__.  Call iter(iterable) instead to determine
  iterability.
  
  

Changed:
  U   z3c.pt/trunk/src/z3c/pt/utils.py

-=-
Modified: z3c.pt/trunk/src/z3c/pt/utils.py
===================================================================
--- z3c.pt/trunk/src/z3c/pt/utils.py	2008-08-15 23:50:05 UTC (rev 89902)
+++ z3c.pt/trunk/src/z3c/pt/utils.py	2008-08-16 05:50:04 UTC (rev 89903)
@@ -93,8 +93,12 @@
             length = None
             
         try:
-            iterator = iterable.__iter__()
-        except AttributeError:
+            # We used to do iterable.__iter__() but, e.g. BTreeItems
+            # objects are iterable (via __getitem__) but don't possess
+            # an __iter__.  call iter(iterable) instead to determine
+            # iterability.
+            iterator = iter(iterable)
+        except TypeError:
             raise TypeError(
                 "Can only repeat over an iterable object (%s)." % iterable)
         



More information about the Checkins mailing list