1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
# Licensed to Elasticsearch B.V. under one or more contributor
# license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright
# ownership. Elasticsearch B.V. licenses this file to you 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.
"""Transport classes and utilities shared among Python Elastic client libraries"""
import logging
from ._async_transport import AsyncTransport as AsyncTransport
from ._exceptions import (
ApiError,
ConnectionError,
ConnectionTimeout,
SecurityWarning,
SerializationError,
SniffingError,
TlsError,
TransportError,
TransportWarning,
)
from ._models import ApiResponseMeta, HttpHeaders, NodeConfig, SniffOptions
from ._node import (
AiohttpHttpNode,
BaseAsyncNode,
BaseNode,
HttpxAsyncHttpNode,
RequestsHttpNode,
Urllib3HttpNode,
)
from ._node_pool import NodePool, NodeSelector, RandomSelector, RoundRobinSelector
from ._otel import OpenTelemetrySpan
from ._response import ApiResponse as ApiResponse
from ._response import BinaryApiResponse as BinaryApiResponse
from ._response import HeadApiResponse as HeadApiResponse
from ._response import ListApiResponse as ListApiResponse
from ._response import ObjectApiResponse as ObjectApiResponse
from ._response import TextApiResponse as TextApiResponse
from ._serializer import (
JsonSerializer,
NdjsonSerializer,
Serializer,
SerializerCollection,
TextSerializer,
)
from ._transport import Transport as Transport
from ._transport import TransportApiResponse
from ._utils import fixup_module_metadata
from ._version import __version__ as __version__ # noqa
__all__ = [
"AiohttpHttpNode",
"ApiError",
"ApiResponse",
"ApiResponseMeta",
"AsyncTransport",
"BaseAsyncNode",
"BaseNode",
"BinaryApiResponse",
"ConnectionError",
"ConnectionTimeout",
"HeadApiResponse",
"HttpHeaders",
"HttpxAsyncHttpNode",
"JsonSerializer",
"ListApiResponse",
"NdjsonSerializer",
"NodeConfig",
"NodePool",
"NodeSelector",
"ObjectApiResponse",
"OpenTelemetrySpan",
"RandomSelector",
"RequestsHttpNode",
"RoundRobinSelector",
"SecurityWarning",
"SerializationError",
"Serializer",
"SerializerCollection",
"SniffOptions",
"SniffingError",
"TextApiResponse",
"TextSerializer",
"TlsError",
"Transport",
"TransportApiResponse",
"TransportError",
"TransportWarning",
"Urllib3HttpNode",
]
try:
from elastic_transport._serializer import OrjsonSerializer # noqa: F401
__all__.append("OrjsonSerializer")
except ImportError:
pass
_logger = logging.getLogger("elastic_transport")
_logger.addHandler(logging.NullHandler())
del _logger
fixup_module_metadata(__name__, globals())
del fixup_module_metadata
def debug_logging() -> None:
"""Enables logging on all ``elastic_transport.*`` loggers and attaches a
:class:`logging.StreamHandler` instance to each. This is an easy way to
visualize the network activity occurring on the client or debug a client issue.
"""
handler = logging.StreamHandler()
formatter = logging.Formatter(
"[%(asctime)s] %(message)s", datefmt="%Y-%m-%dT%H:%M:%S"
)
handler.setFormatter(formatter)
for logger in (
logging.getLogger("elastic_transport.node"),
logging.getLogger("elastic_transport.node_pool"),
logging.getLogger("elastic_transport.transport"),
):
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)
|