- Fixed requests 2.32 compatibility (#164)
- Fixed TypeError when two nodes are declared dead at the same time (#115, contributed by @floxay)
- Added
TransportApiResponse
(#160, #161, contributed by @JessicaGarson)
- Added support for the HTTPX client with asyncio (#137, contributed by @b4sus)
- Added optional orjson serializer support (#152)
- Fix basic auth built from percent-encoded URLs (#143)
- Always set default HTTPS port to 443 (#127)
- Drop support for Python 3.6 (#109)
- Include tests in sdist (#122, contributed by @parona-source)
- Fix
__iter__
return type to Iterator (#129, contributed by @altescy)
- Support urllib3 2.x in addition to urllib3 1.26.x (#121)
- Add 409 to
NOT_DEAD_NODE_HTTP_STATUSES
(#120)
- Fixed an issue where a large number of consecutive failures to connect to a node would raise an
OverflowError
. - Fixed an issue to ensure that
ApiResponse
can be pickled.
- Added method for clients to use default ports for URL scheme.
- Fixed issue when connecting to an IP address with HTTPS enabled would result in a
ValueError
for a mismatch betweencheck_hostname
andserver_hostname
.
- Fixed
JsonSerializer
to returnNone
if a response usingContent-Type: application/json
is empty instead of raising an error.
- Fixed
Urllib3HttpNode
andRequestsHttpNode
to never require a valid certificate chain when usingssl_assert_fingerprint
. Instead the internal HTTP client libraries will explicitly disable verifying the certificate chain and instead rely only on the certificate fingerprint for verification.
- Fixed
AiohttpHttpNode
to close TLS connections that aren't properly shutdown by the server instead of leaking them - Fixed
Urllib3HttpNode
to respectpath_prefix
setting inNodeConfig
- Added support for asyncio with
AsyncTransport
andAiohttpHttpNode
- Added
JsonSerializer
,NdjsonSerializer
- Added
connections_per_node
parameter toRequestsHttpNode
- Added support for
ssl_assert_fingerprint
toRequestsHttpNode
- Added experimental support for pinning non-leaf certificates
via
ssl_assert_fingerprint
when using CPython 3.10+ - Added support for node discovery via "sniffing" using the
sniff_callback
transport parameter - Added ability to specify
ssl_version
viassl.TLSVersion
enum instead ofssl.PROTOCOL_TLSvX
for Python 3.7+ - Added
elastic_transport.client_utils
module to help writing API clients - Added
elastic_transport.debug_logging
method to enable all logging for debugging purposes - Added option to set
requests.Session.auth
withinRequestsHttpNode
viaNodeConfig._extras['requests.session.auth']
- Changed
*Connection
classes to use*Node
terminology - Changed
connection_class
tonode_class
- Changed
ConnectionPool
toNodePool
- Changed
ConnectionSelector
toNodeSelector
- Changed
NodeSelector(randomize_hosts)
parameter torandomize_nodes
- Changed
NodeSelector.get_connection()
method toget()
- Changed
elastic_transport.connection
logger name toelastic_transport.node
- Changed
Urllib3HttpNode(connections_per_host)
parameter toconnections_per_node
- Changed return type of
BaseNode.perform_request()
toNamedTuple(meta=ApiResponseMeta, body=bytes)
- Changed return type of
Transport.perform_request()
toNamedTuple(meta=ApiResponseMeta, body=Any)
- Changed name of
Deserializer
intoSerializersCollection
- Changed
ssl_version
to denote the minimum TLS version instead of the only TLS version - Changed the base class for
ApiError
to beException
instead ofTransportError
.TransportError
is now only for errors that occur at the transport layer. - Changed
Urllib3HttpNode
to block on new connections when the internal connection pool is exhausted
- Removed support for Python 2.7
- Removed
DummyConnectionPool
andEmptyConnectionPool
in favor ofNodePool
.
- Fixed a work-around with
AiohttpHttpNode
wheremethod="HEAD"
requests wouldn't mark the internal connection as reusable. This work-around is no longer needed whenaiohttp>=3.7.0
is installed. - Fixed logic for splitting
aiohttp.__version__
when determining ifHEAD
bug is fixed.
Release created to be compatible with 7.15 clients
Release created to be compatible with 7.14 clients
Release created to be compatible with 7.13 clients
Release created to be compatible with 7.12 clients
- Added the
X-Elastic-Client-Meta
HTTP header (PR #4) - Added HTTP response headers to
Response
andTransportError
(PR #5) - Added the
QueryParams
data structure for representing an ordered sequence of key-value pairs for the URL query (PR #6)
- Changed
Connection.perform_request()
to taketarget
instead ofpath
andparams
. Insteadpath
andparams
are created withinTransport.perform_request()
(PR #6)
- Initial beta release of
elastic-transport-python