Transport classes and utilities shared among Python Elastic client libraries
Project description
elastic-transport-python
Transport classes and utilities shared among Python Elastic client libraries
This library was lifted from elasticsearch-py
and then transformed to be used across all Elastic services
rather than only Elasticsearch.
Installing from PyPI
$ python -m pip install elastic-transport
Versioning follows the major and minor version of the Elastic Stack version and the patch number is incremented for bug fixes within a minor release.
elastic-transport-python
supports Python 2.7 and Python 3.6+
User Guide
For almost all use-cases you should not need this library. The below use-cases are the common ones:
Creating your own Connection Class
If you need to have custom behavior for a Connection
you can subclass the
base connection class you want and then pass the class in via connection_class
:
from elastic_transport import Urllib3HttpConnection
from elastic_enterprise_search import EnterpriseSearch
class CustomHttpConnection(Urllib3HttpConnection):
... # Custom HTTP behavior
# Create the Client with 'connection_class' defined
client = EnterpriseSearch(
...,
connection_class=CustomHttpConnection
)
The above also works for ConnectionPool
(via connection_pool_class
) and Transport
(via transport_class
).
Connection Classes
elastic-transport-python
supports two HTTP client libraries:
Urllib3HttpConnection
This is the default connection class. This connection class uses urllib3` to issue requests. Read more about urllib3 on Read the Docs.
RequestsHttpConnection
This connection class requires the Requests library to be installed to use:
$ python -m pip install requests
This class is often useful when using libraries that integrate with Requests. Read more about Requests on Read the Docs.
Supported Connection Options
The two connection classes support a variety of options, some connection classes only support a subset of the total options:
Option | Description | Default | Supported by urllib3 | Supported by requests |
---|---|---|---|---|
host | TCP host to connect | localhost | ✓ | ✓ |
port | TCP port to connect | ✓ | ✓ | |
use_ssl | Should connect via TLS/SSL? | False | ✓ | ✓ |
url_prefix | Path prefix for all requests | "" | ✓ | ✓ |
request_timeout | Default request timeout | 10.0 | ✓ | ✓ |
headers | HTTP headers to add to every request | {} | ✓ | ✓ |
user_agent | Default User-Agent HTTP header | None | ✓ | ✓ |
connections_per_host | Number of HTTP connections per host | 10 | ✓ | |
verify_certs | Whether to verify server certificate | True | ✓ | ✓ |
ca_certs | CA certificates to use with TLS/SSL | certifi | ✓ | ✓ |
client_cert | Client certificate to present during TLS/SSL handshake | None | ✓ | ✓ |
client_key | Client certificate key that goes with client_cert | None | ✓ | ✓ |
ssl_version | Version of TLS/SSL to use | None | ✓ | |
ssl_assert_hostname | Host to verify on the server TLS certificate. Set to False to disable certificate hostname verification | None | ✓ | |
ssl_assert_fingerprint | Checksum to verify against the server TLS certificate | None | ✓ | |
ssl_context | Preconfigured SSLContext instance | None | ✓ |
License
elastic-transport-python
is available under the Apache-2.0 license.
For more details see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file elastic-transport-7.12.0.tar.gz
.
File metadata
- Download URL: elastic-transport-7.12.0.tar.gz
- Upload date:
- Size: 27.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.9.0b3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ab5cc012550043d130bb5734b61b86ec4676013b666d12d794fdc54ecd2d596 |
|
MD5 | dcc9b4438dfbd02ae8af0ffd2a335d2a |
|
BLAKE2b-256 | 69072f8bf211108df3da464ea33aa1dec7d39afb6330869d336881d8b1f0fbcb |
Provenance
File details
Details for the file elastic_transport-7.12.0-py2.py3-none-any.whl
.
File metadata
- Download URL: elastic_transport-7.12.0-py2.py3-none-any.whl
- Upload date:
- Size: 35.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.9.0b3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdb4020f0b38fa7abf81977f140a887e1b504b22707fcc8f476cb9065f355421 |
|
MD5 | 70f3375b395d5a8cfd50f79d79c0f2d2 |
|
BLAKE2b-256 | c899aa1814c69a07c3f6b0c2c5357c2420efb986c6193079d012678074e968c1 |