New submission from Adam Collard <adam.coll...@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 <rep...@bugs.python.org>
<http://bugs.python.org/issue7975>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to