/motor

Primary LanguagePythonApache License 2.0Apache-2.0

Motor

https://raw.github.com/mongodb/motor/master/doc/_static/motor.png

Info:Motor is a full-featured, non-blocking MongoDB driver for Python Tornado applications.
Author:A. Jesse Jiryu Davis
https://travis-ci.org/mongodb/motor.png

About

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

Issues / Questions / Feedback

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.

Installation

$ pip install motor

Dependencies

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:

  • (to generate documentation) sphinx
  • (to run tests) nose

Documentation

You will need sphinx installed to generate the documentation. Documentation can be generated by running cd doc; make html. Generated documentation can be found in doc/build/html/. You can read the current docs at ReadTheDocs.

Examples

See the examples on ReadTheDocs or Chirp, a dumb Twitter clone.

Testing

The easiest way to run the tests is to install nose and run nosetests or python setup.py test in the root of the distribution. Tests are located in the test/ directory.