Skip to main content

Async backend for elasticsearch-py

Project description

This is an adapter for elasticsearch-py providing a transport layer based on Python’s asyncio module. All API calls now return a future wrapping the response.

Sniffing (when requested) is also done via a scheduled coroutine.

Example:

import asyncio
from elasticsearch_async import AsyncElasticsearch

client = AsyncElasticsearch(hosts=['localhost', 'other-host'])

@asyncio.coroutine
def print_info():
    info = yield from client.info()
    print(info)

loop = asyncio.get_event_loop()
loop.run_until_complete(print_info())
loop.close()
client.transport.close()

Example with SSL Context:

import asyncio
from elasticsearch_async import AsyncElasticsearch
from elasticsearch.connection.http_urllib3 import create_ssl_context

context = create_ssl_context(cafile="/certs/ca/ca.crt")

client = AsyncElasticsearch(
    hosts=['elasticsearch-xpack'],
    ssl_context=context,
    http_auth=('elastic', 'changeme')
)

@asyncio.coroutine
def print_info():
    info = yield from client.info()
    print(info)

loop = asyncio.get_event_loop()
loop.run_until_complete(print_info())
loop.close()
client.transport.close()

AsyncElasticsearch introduces one extra parameter loop which can be used to pass in an event loop you wish the client to use. By default asyncio.get_event_loop() will be used.

Installation

elasticsearch-async is available via PyPI so you can install it using pip:

pip install elasticsearch-async

License

Copyright 2015 Elasticsearch

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

elasticsearch-async-6.0.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

elasticsearch_async-6.0.0-py2.py3-none-any.whl (9.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file elasticsearch-async-6.0.0.tar.gz.

File metadata

File hashes

Hashes for elasticsearch-async-6.0.0.tar.gz
Algorithm Hash digest
SHA256 555f9b7bc97c3f0484d940525aabd559e0c87feccefa4448a4d11ddbf4870c5f
MD5 b5720da3b9647976d25d88847df0e1f7
BLAKE2b-256 43d9edb0d872091d35255e004b15a97d643f9dbe37323b18b2b4e972354d23f4

See more details on using hashes here.

File details

Details for the file elasticsearch_async-6.0.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for elasticsearch_async-6.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 18ffa87c395a76c72e0474a5a0b4bf342a7e70f3b1b42aeddd9a35ecfba00ed0
MD5 9c3b5a2bb36e5153f2b8304fb97ae7ab
BLAKE2b-256 964a082cf16f99a6f931a6d7ef51e0b8416da53599cba5554669bedabbc30f13

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page