Go to file
A. Jesse Jiryu Davis f25301dc9f MOTOR-131 enable SSL tests with Python 2.6
Update test certificates from PyMongo's to work around
http://bugs.python.org/issue13034
2017-04-01 15:05:20 -04:00
.evergreen MOTOR-143 - Test on OSX 2017-04-01 08:27:37 -07:00
doc MOTOR-132 APM example, fix literalinclude 2017-04-01 07:24:25 -04:00
motor MOTOR-147 MotorCollection accepts kwargs 2017-04-01 05:24:41 -04:00
synchro MOTOR-146 Synchrotest fixes 2017-04-01 05:06:03 -04:00
test MOTOR-131 enable SSL tests with Python 2.6 2017-04-01 15:05:20 -04:00
.gitignore Git ignore XUnit results. 2016-12-02 21:58:50 -05:00
CONTRIBUTING.rst Doctests pass with MongoDB 3.2 now. 2016-10-26 12:50:21 -04:00
ez_setup.py Switch from distribute_setup.py to ez_setup.py 2016-10-01 15:58:56 +03:00
LICENSE Initial import from my fork of PyMongo 2013-01-15 14:07:09 -05:00
MANIFEST.in MOTOR-69 - Add theme files to MANIFEST. 2015-08-25 21:49:49 -04:00
README.rst MOTOR-130 PyMongo 3.4 support. 2016-11-29 22:27:41 -05:00
setup.py MOTOR-129 Only install aiohttp integration on Python 3. 2017-01-17 13:36:58 -05:00
tox.ini MOTOR-140 Install PyMongo master for synchrotests 2017-04-01 06:52:09 -04:00

=====
Motor
=====

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

:Info: Motor is a full-featured, non-blocking MongoDB_ driver for Python
    Tornado_ and asyncio_ applications.
:Author: A\. Jesse Jiryu Davis

About
=====

Motor presents a callback- or Future-based API for non-blocking access
to MongoDB. The source is `on GitHub <https://github.com/mongodb/motor>`_
and the docs are on ReadTheDocs_.

    "We use Motor in high throughput environments, processing tens of thousands
    of requests per second. It allows us to take full advantage of modern
    hardware, ensuring we utilise the entire capacity of our purchased CPUs.
    This helps us be more efficient with computing power, compute spend and
    minimises the environmental impact of our infrastructure as a result."

    --*David Mytton, Server Density*

    "We develop easy-to-use sensors and sensor systems with open source
    software to ensure every innovator, from school child to laboratory
    researcher, has the same opportunity to create. We integrate Motor into our
    software to guarantee massively scalable sensor systems for everyone."

    --*Ryan Smith, inXus Interactive*

Installation
============

  $ pip install motor

Dependencies
============

Motor works in all the environments officially supported by Tornado or by
asyncio. It requires:

* Unix, including Mac OS X. Windows is not supported.
* PyMongo_ 3.4 or later.
* Python 2.6 or later.
* `futures`_ on Python 2.6.
* `backports.pbkdf2`_ for faster authentication with MongoDB 3.0+,
  especially on Python older than 2.7.8, or on Python 3 before Python 3.4.

See `requirements <https://motor.readthedocs.io/en/stable/requirements.html>`_
for details about compatibility.

How To Ask For Help
===================

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 in `Jira <http://jira.mongodb.org>`_ in the "MOTOR" project.
Please include all of the following information:

- Detailed steps to reproduce the problem, including your code and a full
  traceback, if possible.
- What you expected to happen, and what actually happened.
- The exact python version used, with patch level::

  $ python -c "import sys; print(sys.version)"

- The exact version of PyMongo used:

  $ python -c "import pymongo; print(pymongo.version); print(pymongo.has_c())"

- The exact Tornado version, if you are using Tornado::

  $ python -c "import tornado; print(tornado.version)"

- The operating system and version (e.g. RedHat Enterprise Linux 6.4, OSX 10.9.5, ...)

Documentation
=============

Motor's documentation is on ReadTheDocs_.

Build the documentation with Python 3.5. Install sphinx, Tornado, and aiohttp,
and do ``cd doc; make html``.

Examples
========

See the `examples on ReadTheDocs <https://motor.readthedocs.io/en/latest/examples/index.html>`_.

Testing
=======

Run ``python setup.py test``.
Tests are located in the ``test/`` directory.
In Python 2.6, unittest2_ is automatically installed.

.. _PyMongo: http://pypi.python.org/pypi/pymongo/

.. _MongoDB: http://mongodb.org/

.. _Tornado: http://tornadoweb.org/

.. _asyncio: https://docs.python.org/3/library/asyncio.html

.. _futures: https://pypi.python.org/pypi/futures

.. _backports.pbkdf2: https://pypi.python.org/pypi/backports.pbkdf2/

.. _ReadTheDocs: https://motor.readthedocs.io/

.. _mongodb-user list on Google Groups:
   https://groups.google.com/forum/?fromgroups#!forum/mongodb-user

.. _sphinx: http://sphinx.pocoo.org/

.. _unittest2: https://pypi.python.org/pypi/unittest2