[New-bugs-announce] [issue7975] dbshelve.py throws exception: AttributeError: 'DB' object has no attribute '__iter__'
Adam Collard
report at bugs.python.org
Sun Feb 21 16:44:17 CET 2010
New submission from Adam Collard <adam.collard at gmail.com>:
Originally reported at:
https://bugs.edge.launchpad.net/bugs/384602
In Python 2.6, the dbshelve.py module throws an AttributeError exception whenever a call is made to a method that depends upon an __iter__ method. The exception is:
File "/usr/lib/python2.6/bsddb/dbshelve.py", line 167, in __iter__
return self.db.__iter__()
AttributeError: 'DB' object has no attribute '__iter__'
This means that, if mydb is an istance of a DB object, the following examples will fail:
for key in mydb: print key
print (k for k in mydb.iterkeys())
for k, d in mydb.itervalues(): print k, d
and many other statements depending on iterable(mydb) being true
Note that, in Python 2.5, these examples work and no exception is thrown. In fact, if you have both 2.5 and 2.6 installed on the same system, you can run the same program containing code as above with Python2.5 without issue while running it under Python 2.6 raises the exception seen above.
----------
messages: 99667
nosy: adam-collard
severity: normal
status: open
title: dbshelve.py throws exception: AttributeError: 'DB' object has no attribute '__iter__'
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue7975>
_______________________________________
More information about the New-bugs-announce
mailing list