Metadata-Version: 2.0
Name: tornado-elasticsearch
Version: 0.4.0
Summary: Extends the official Elasticsearch Python API adding Tornado AsyncHTTPClient support
Home-page: https://github.com/gmr/tornado_elasticsearch
Author: Gavin M. Roy
Author-email: gavinmroy@gmail.com
License: BSD
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Communications
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries
Requires-Dist: elasticsearch
Requires-Dist: tornado

tornado_elasticsearch
=====================
Extends the official Elasticsearch Python API adding Tornado AsyncHTTPClient
support.

|Version| |Downloads| |LICENSE|

Installation
------------
tornado_elasticsearch is available on the Python Package Index and can be
installed using pip or easy_install:

.. code-block:: sh

    pip install tornado_elasticsearch

Example Request Handlers
------------------------
.. code-block:: python

    from tornado import gen
    from tornado import web
    from tornado_elasticsearch import AsyncElasticsearch
    import uuid

    class Example(web.RequestHandler):

        def initialize(self):
            self.es = AsyncElasticsearch()

        @web.asynchronous
        @gen.engine
        def delete(self, *args, **kwargs):
            result = yield self.es.delete(index='test-index', doc_type='tweet',
                                          id=self.get_argument('id'))
            self.finish(result)

        @web.asynchronous
        @gen.engine
        def get(self, *args, **kwargs):
            if self.get_argument('id', None):
                result = yield self.es.get(index='test-index', doc_type='tweet',
                                           id=self.get_argument('id'))
            else:
                result = yield self.es.search(index='test-index')
            self.finish(result)

        @web.asynchronous
        @gen.engine
        def post(self, *args, **kwargs):
            doc = {
                'author': self.get_current_user() or 'Unknown',
                'text': self.get_argument('text'),
                'timestamp': datetime.datetime.now()
            }
            result = yield self.es.index(index='test-index',
                                         doc_type='tweet',
                                         body=doc,
                                         id=str(uuid.uuid4()))
            self.finish(result)


    class Info(web.RequestHandler):

        @web.asynchronous
        @gen.engine
        def get(self, *args, **kwargs):
            es = AsyncElasticsearch()
            info = yield es.info()
            self.finish(info)


Version History
---------------
- 0.3.0: Bugfix: Add body to log_request_fail call (#1)
- 0.2.0: Bugfix: force method to POST if GET and body passed
- 0.1.0: Initial version

.. |Version| image:: https://img.shields.io/pypi/v/tornado_elasticsearch.svg?
   :target: http://badge.fury.io/py/tornado_elasticsearch

.. |Downloads| image:: https://img.shields.io/pypi/dm/tornado_elasticsearch.svg?
   :target: https://pypi.python.org/pypi/tornado_elasticsearch

.. |License| image:: https://img.shields.io/pypi/l/tornado_elasticsearch.svg?
   :target: https://tornado_elasticsearch.readthedocs.org


