NoSQL Zone is brought to you in partnership with:

Software developer specializing in MongoDB, Python, Tornado, and Javascript, with particular interests in real-time web and new tools that get the job done with grace and alacrity. A. Jesse Jiryu is a DZone MVB and is not an employee of DZone and has posted 67 posts at DZone. You can read more from them at their website. View Full User Profile

Motor Progress Report

09.04.2012
| 3726 views |
  • submit to reddit

Motor, my async driver for MongoDB and Tornado, is now compatible with all the same CPython versions as Tornado: 2.5, 2.6, 2.7, and 3.2!

PyPy support is coming soon. Update: PyPy is supported, too. Motor now supports exactly the same Python versions Tornado does.

To get Motor working with Python 3 I had to make a backwards breaking change: MotorCursor.next is now next_object. So this:

cursor = db.collection.find()
cursor.next(my_callback)

... must now be:

cursor = db.collection.find()
cursor.next_object(my_callback)

I had to do this to neatly support Python 3, because 2to3 was unhelpfully transforming MotorCursor.next into __next__. But the change was worthy even without that problem: next_object is closer to nextObject in the Node.js MongoDB driver, whose API I'm trying to emulate. Besides, I wasn't using next the way Python intends, so I went ahead and renamed it. I'm sorry if this breaks your code. This is what the alpha phase is for.

The only remaining feature to implement is GridFS, which I'll do within the month. There's some more testing and documentation to do, and then we'll move from alpha to beta.

I know a few people are trying out Motor. I've received no bug reports so far, but some users have reported omissions in the docs which I've filled in. If you're using Motor, get in touch and let me know: jesse@10gen.com.

Published at DZone with permission of A. Jesse Jiryu Davis, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)