Skip to content

8.0.0

Compare
Choose a tag to compare
@sethmlarson sethmlarson released this 09 Feb 18:37
· 112 commits to main since this release

Added

  • Added support for asyncio with AsyncTransport and AiohttpHttpNode
  • Added JsonSerializer, NdjsonSerializer
  • Added connections_per_node parameter to RequestsHttpNode
  • Added support for ssl_assert_fingerprint to RequestsHttpNode
  • 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 via ssl.TLSVersion enum
    instead of ssl.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 within RequestsHttpNode via NodeConfig._extras['requests.session.auth']

Changed

  • Changed *Connection classes to use *Node terminology
  • Changed connection_class to node_class
  • Changed ConnectionPool to NodePool
  • Changed ConnectionSelector to NodeSelector
  • Changed NodeSelector(randomize_hosts) parameter to randomize_nodes
  • Changed NodeSelector.get_connection() method to get()
  • Changed elastic_transport.connection logger name to elastic_transport.node
  • Changed Urllib3HttpNode(connections_per_host) parameter to connections_per_node
  • Changed return type of BaseNode.perform_request() to NamedTuple(meta=ApiResponseMeta, body=bytes)
  • Changed return type of Transport.perform_request() to NamedTuple(meta=ApiResponseMeta, body=Any)
  • Changed name of Deserializer into SerializersCollection
  • Changed ssl_version to denote the minimum TLS version instead of the only TLS version
  • Changed the base class for ApiError to be Exception instead of TransportError.
    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

  • Removed support for Python 2.7
  • Removed DummyConnectionPool and EmptyConnectionPool in favor of NodePool.

Fixed

  • Fixed a work-around with AiohttpHttpNode where method="HEAD" requests wouldn't mark the internal connection as reusable. This work-around is no longer needed when aiohttp>=3.7.0 is installed.
  • Fixed logic for splitting aiohttp.__version__ when determining if HEAD bug is fixed.