Info: | Motor is a full-featured, non-blocking MongoDB driver for Python Tornado applications. |
---|---|
Author: | A. Jesse Jiryu Davis |
Motor presents a Tornado_callback- or Future-based API for non-blocking access to MongoDB. The source is on GitHub and the docs are on ReadTheDocs.
"Motor uses a clever greenlet-based approach to fully support both synchronous and asynchronous interfaces from a single codebase. It's great to see companies like 10gen produce first-party asynchronous drivers for their products."
—Ben Darnell, Tornado maintainer
Any issues with, questions about, or feedback for Motor should be sent to the mongodb-user list on Google Groups. For confirmed issues or feature requests, open a case on jira in the "MOTOR" project.
$ pip install motor
Motor works in all the environments officially supported by Tornado. It requires:
- Unix, including Mac OS X. Microsoft Windows is not officially supported.
- PyMongo
- Tornado
- Greenlet
- CPython 2.6, 2.7, 3.2, or 3.3
- PyPy 2.0 (greenlets were very slow in earlier PyPy versions)
Additional dependencies are:
You will need sphinx installed to generate the documentation. Documentation
can be generated by running python setup.py doc
. Generated documentation
can be found in doc/build/html/
. You can read the current docs
at ReadTheDocs.
See the examples on ReadTheDocs or Chirp, a dumb Twitter clone.
The easiest way to run the tests is to install nose and run nosetests
in the root of the distribution.
You can run all the tests in Python 3 with python setup.py nosetests
. Due
to a nose bug, running a subset of the tests in Python 3 is complicated.
Build Motor and its tests with Python 3, then cd
to the build directory and
run nosetests
:
$ python3.3 setup.py build --test using 2to3 including test modules running build running build_py creating build/lib/motor ... $ cd build/lib $ nosetests-3.3 test.test_motor_client