# SPDX-License-Identifier: Apache-2.0 # # The OpenSearch Contributors require contributions made to # this file be licensed under the Apache-2.0 license or a # compatible open source license. # # Modifications Copyright OpenSearch Contributors. See # GitHub history for details. # # 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. # flake8: noqa from __future__ import absolute_import import logging import re import sys import warnings from ._version import __versionstr__ _major, _minor, _patch = [ int(x) for x in re.search(r"^(\d+)\.(\d+)\.(\d+)", __versionstr__).groups() ] VERSION = __version__ = (_major, _minor, _patch) logger = logging.getLogger("opensearch") logger.addHandler(logging.NullHandler()) from .client import OpenSearch from .connection import ( Connection, RequestsHttpConnection, Urllib3HttpConnection, connections, ) from .connection_pool import ConnectionPool, ConnectionSelector, RoundRobinSelector from .exceptions import ( AuthenticationException, AuthorizationException, ConflictError, ConnectionError, ConnectionTimeout, IllegalOperation, ImproperlyConfigured, NotFoundError, OpenSearchDeprecationWarning, OpenSearchDslException, OpenSearchException, OpenSearchWarning, RequestError, SerializationError, SSLError, TransportError, UnknownDslObject, ValidationException, ) from .helpers import AWSV4SignerAsyncAuth, AWSV4SignerAuth from .helpers.aggs import A from .helpers.analysis import analyzer, char_filter, normalizer, token_filter, tokenizer from .helpers.document import Document, InnerDoc, MetaField from .helpers.faceted_search import ( DateHistogramFacet, Facet, FacetedResponse, FacetedSearch, HistogramFacet, NestedFacet, RangeFacet, TermsFacet, ) from .helpers.field import ( Binary, Boolean, Byte, Completion, CustomField, Date, DateRange, DenseVector, Double, DoubleRange, Field, Float, FloatRange, GeoPoint, GeoShape, HalfFloat, Integer, IntegerRange, Ip, IpRange, Join, Keyword, Long, LongRange, Murmur3, Nested, Object, Percolator, RangeField, RankFeature, RankFeatures, ScaledFloat, SearchAsYouType, Short, SparseVector, Text, TokenCount, construct_field, ) from .helpers.function import SF from .helpers.index import Index, IndexTemplate from .helpers.mapping import Mapping from .helpers.query import Q from .helpers.search import MultiSearch, Search from .helpers.update_by_query import UpdateByQuery from .helpers.utils import AttrDict, AttrList, DslBase from .helpers.wrappers import Range from .serializer import JSONSerializer from .transport import Transport # Only raise one warning per deprecation message so as not # to spam up the user if the same action is done multiple times. warnings.simplefilter("default", category=OpenSearchDeprecationWarning, append=True) __all__ = [ "OpenSearch", "Transport", "ConnectionPool", "ConnectionSelector", "RoundRobinSelector", "JSONSerializer", "Connection", "RequestsHttpConnection", "AsyncHttpConnection", "Urllib3HttpConnection", "ImproperlyConfigured", "OpenSearchException", "SerializationError", "TransportError", "NotFoundError", "ConflictError", "RequestError", "ConnectionError", "SSLError", "ConnectionTimeout", "AuthenticationException", "AuthorizationException", "OpenSearchWarning", "OpenSearchDeprecationWarning", "AWSV4SignerAuth", "AWSV4SignerAsyncAuth", "A", "AttrDict", "AttrList", "Binary", "Boolean", "Byte", "Completion", "CustomField", "Date", "DateHistogramFacet", "DateRange", "DenseVector", "Document", "Double", "DoubleRange", "DslBase", "Facet", "FacetedResponse", "FacetedSearch", "Field", "Float", "FloatRange", "GeoPoint", "GeoShape", "HalfFloat", "HistogramFacet", "IllegalOperation", "Index", "IndexTemplate", "InnerDoc", "Integer", "IntegerRange", "Ip", "IpRange", "Join", "Keyword", "Long", "LongRange", "Mapping", "MetaField", "MultiSearch", "Murmur3", "Nested", "NestedFacet", "Object", "OpenSearchDslException", "Percolator", "Q", "Range", "RangeFacet", "RangeField", "RankFeature", "RankFeatures", "SF", "ScaledFloat", "Search", "SearchAsYouType", "Short", "SparseVector", "TermsFacet", "Text", "TokenCount", "UnknownDslObject", "UpdateByQuery", "ValidationException", "analyzer", "char_filter", "connections", "construct_field", "normalizer", "token_filter", "tokenizer", ] try: # Asyncio only supported on Python 3.6+ if sys.version_info < (3, 6): raise ImportError from ._async.client import AsyncOpenSearch from ._async.http_aiohttp import AIOHttpConnection, AsyncConnection from ._async.transport import AsyncTransport from .connection import AsyncHttpConnection __all__ += [ "AIOHttpConnection", "AsyncConnection", "AsyncTransport", "AsyncOpenSearch", "AsyncHttpConnection", ] except (ImportError, SyntaxError): pass