Motor Progress Report
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: firstname.lastname@example.org.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)