diff --git a/Changelog.rst b/Changelog.rst index 558f91e85..b97a3fc13 100644 --- a/Changelog.rst +++ b/Changelog.rst @@ -3,6 +3,15 @@ Changelog ========= +7.4.1.py311 (2024-10-31) +------------------ +Rover fork for Python 3.11 support +https://roverdotcom.atlassian.net/browse/DEV-96564 +https://github.com/roverdotcom/web/pull/71333 + * Update source dir elasticsearch_dsl -> elasticsearch7_dsl for build purposes + * Update setup.py to require Python 3.11 + + 7.4.1 (2023-03-01) ------------------ diff --git a/docs/conf.py b/docs/conf.py index 60aacdb58..b94dc0834 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -31,7 +31,7 @@ import datetime import os -import elasticsearch_dsl +import elasticsearch7_dsl # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -70,7 +70,7 @@ # built documents. # The short X.Y version. -version = elasticsearch_dsl.__versionstr__ +version = elasticsearch7_dsl.__versionstr__ # The full version, including alpha/beta/rc tags. release = version diff --git a/elasticsearch_dsl/__init__.py b/elasticsearch7_dsl/__init__.py similarity index 100% rename from elasticsearch_dsl/__init__.py rename to elasticsearch7_dsl/__init__.py diff --git a/elasticsearch_dsl/aggs.py b/elasticsearch7_dsl/aggs.py similarity index 100% rename from elasticsearch_dsl/aggs.py rename to elasticsearch7_dsl/aggs.py diff --git a/elasticsearch_dsl/analysis.py b/elasticsearch7_dsl/analysis.py similarity index 100% rename from elasticsearch_dsl/analysis.py rename to elasticsearch7_dsl/analysis.py diff --git a/elasticsearch_dsl/connections.py b/elasticsearch7_dsl/connections.py similarity index 98% rename from elasticsearch_dsl/connections.py rename to elasticsearch7_dsl/connections.py index cdb490f3f..cf654db1c 100644 --- a/elasticsearch_dsl/connections.py +++ b/elasticsearch7_dsl/connections.py @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -from elasticsearch import Elasticsearch, __version__ +from elasticsearch7 import Elasticsearch, __version__ from six import string_types from .serializer import serializer diff --git a/elasticsearch_dsl/document.py b/elasticsearch7_dsl/document.py similarity index 100% rename from elasticsearch_dsl/document.py rename to elasticsearch7_dsl/document.py diff --git a/elasticsearch_dsl/exceptions.py b/elasticsearch7_dsl/exceptions.py similarity index 100% rename from elasticsearch_dsl/exceptions.py rename to elasticsearch7_dsl/exceptions.py diff --git a/elasticsearch_dsl/faceted_search.py b/elasticsearch7_dsl/faceted_search.py similarity index 100% rename from elasticsearch_dsl/faceted_search.py rename to elasticsearch7_dsl/faceted_search.py diff --git a/elasticsearch_dsl/field.py b/elasticsearch7_dsl/field.py similarity index 100% rename from elasticsearch_dsl/field.py rename to elasticsearch7_dsl/field.py diff --git a/elasticsearch_dsl/function.py b/elasticsearch7_dsl/function.py similarity index 100% rename from elasticsearch_dsl/function.py rename to elasticsearch7_dsl/function.py diff --git a/elasticsearch_dsl/index.py b/elasticsearch7_dsl/index.py similarity index 100% rename from elasticsearch_dsl/index.py rename to elasticsearch7_dsl/index.py diff --git a/elasticsearch_dsl/mapping.py b/elasticsearch7_dsl/mapping.py similarity index 100% rename from elasticsearch_dsl/mapping.py rename to elasticsearch7_dsl/mapping.py diff --git a/elasticsearch_dsl/query.py b/elasticsearch7_dsl/query.py similarity index 100% rename from elasticsearch_dsl/query.py rename to elasticsearch7_dsl/query.py diff --git a/elasticsearch_dsl/response/__init__.py b/elasticsearch7_dsl/response/__init__.py similarity index 100% rename from elasticsearch_dsl/response/__init__.py rename to elasticsearch7_dsl/response/__init__.py diff --git a/elasticsearch_dsl/response/aggs.py b/elasticsearch7_dsl/response/aggs.py similarity index 100% rename from elasticsearch_dsl/response/aggs.py rename to elasticsearch7_dsl/response/aggs.py diff --git a/elasticsearch_dsl/response/hit.py b/elasticsearch7_dsl/response/hit.py similarity index 100% rename from elasticsearch_dsl/response/hit.py rename to elasticsearch7_dsl/response/hit.py diff --git a/elasticsearch_dsl/search.py b/elasticsearch7_dsl/search.py similarity index 100% rename from elasticsearch_dsl/search.py rename to elasticsearch7_dsl/search.py diff --git a/elasticsearch_dsl/serializer.py b/elasticsearch7_dsl/serializer.py similarity index 100% rename from elasticsearch_dsl/serializer.py rename to elasticsearch7_dsl/serializer.py diff --git a/elasticsearch_dsl/update_by_query.py b/elasticsearch7_dsl/update_by_query.py similarity index 100% rename from elasticsearch_dsl/update_by_query.py rename to elasticsearch7_dsl/update_by_query.py diff --git a/elasticsearch_dsl/utils.py b/elasticsearch7_dsl/utils.py similarity index 100% rename from elasticsearch_dsl/utils.py rename to elasticsearch7_dsl/utils.py diff --git a/elasticsearch_dsl/wrappers.py b/elasticsearch7_dsl/wrappers.py similarity index 100% rename from elasticsearch_dsl/wrappers.py rename to elasticsearch7_dsl/wrappers.py diff --git a/examples/alias_migration.py b/examples/alias_migration.py index e0a44da30..1444ef9c0 100644 --- a/examples/alias_migration.py +++ b/examples/alias_migration.py @@ -38,7 +38,7 @@ from datetime import datetime from fnmatch import fnmatch -from elasticsearch_dsl import Date, Document, Keyword, Text, connections +from elasticsearch7_dsl import Date, Document, Keyword, Text, connections ALIAS = "test-blog" PATTERN = ALIAS + "-*" diff --git a/examples/completion.py b/examples/completion.py index d815a218b..0c4c76f6d 100644 --- a/examples/completion.py +++ b/examples/completion.py @@ -30,7 +30,7 @@ from itertools import permutations -from elasticsearch_dsl import ( +from elasticsearch7_dsl import ( Completion, Document, Keyword, diff --git a/examples/composite_agg.py b/examples/composite_agg.py index b9d22b555..06c60585b 100644 --- a/examples/composite_agg.py +++ b/examples/composite_agg.py @@ -17,7 +17,7 @@ from __future__ import print_function -from elasticsearch_dsl import A, Search, connections +from elasticsearch7_dsl import A, Search, connections def scan_aggs(search, source_aggs, inner_aggs={}, size=10): diff --git a/examples/parent_child.py b/examples/parent_child.py index 3bd40964a..6153eaedf 100644 --- a/examples/parent_child.py +++ b/examples/parent_child.py @@ -41,7 +41,7 @@ """ from datetime import datetime -from elasticsearch_dsl import ( +from elasticsearch7_dsl import ( Boolean, Date, Document, diff --git a/examples/percolate.py b/examples/percolate.py index 7ca49b635..495d686d5 100644 --- a/examples/percolate.py +++ b/examples/percolate.py @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -from elasticsearch_dsl import ( +from elasticsearch7_dsl import ( Document, Keyword, Percolator, diff --git a/examples/search_as_you_type.py b/examples/search_as_you_type.py index 1c41cb73d..468f639c1 100644 --- a/examples/search_as_you_type.py +++ b/examples/search_as_you_type.py @@ -27,14 +27,14 @@ """ from __future__ import print_function, unicode_literals -from elasticsearch_dsl import ( +from elasticsearch7_dsl import ( Document, SearchAsYouType, analyzer, connections, token_filter, ) -from elasticsearch_dsl.query import MultiMatch +from elasticsearch7_dsl.query import MultiMatch # custom analyzer for names ascii_fold = analyzer( diff --git a/noxfile.py b/noxfile.py index 12ff627cb..236717632 100644 --- a/noxfile.py +++ b/noxfile.py @@ -21,14 +21,14 @@ "setup.py", "noxfile.py", "docs/", - "elasticsearch_dsl/", + "elasticsearch7_dsl/", "examples/", "tests/", "utils/", ) -@nox.session(python=["2.7", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9"]) +@nox.session(python=["2.7", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11"]) def test(session): session.install(".[develop]") @@ -37,7 +37,7 @@ def test(session): else: argv = ( "-vvv", - "--cov=elasticsearch_dsl", + "--cov=elasticsearch7_dsl", "--cov=tests.test_integration.test_examples", "tests/", ) diff --git a/setup.py b/setup.py index 6f87b7aff..5ff3db32a 100644 --- a/setup.py +++ b/setup.py @@ -20,7 +20,7 @@ from setuptools import find_packages, setup -VERSION = (7, 4, 1) +VERSION = (7, 4, 1, "dev2") __version__ = VERSION __versionstr__ = ".".join(map(str, VERSION)) @@ -31,7 +31,7 @@ install_requires = [ "six", "python-dateutil", - "elasticsearch>=7.0.0,<8.0.0", + "elasticsearch7>=7.0.0,<8.0.0", # ipaddress is included in stdlib since python 3.3 'ipaddress; python_version<"3.3"', ] @@ -48,7 +48,7 @@ ] setup( - name="elasticsearch-dsl", + name="elasticsearch7-dsl", description="Python client for Elasticsearch", license="Apache-2.0", url="https://github.com/elasticsearch/elasticsearch-dsl-py", @@ -76,6 +76,8 @@ "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ], diff --git a/tests/conftest.py b/tests/conftest.py index b7326c3fb..bd08c91ad 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -26,7 +26,7 @@ from mock import Mock from pytest import fixture, skip -from elasticsearch_dsl.connections import add_connection, connections +from elasticsearch7_dsl.connections import add_connection, connections from .test_integration.test_data import ( DATA, @@ -143,7 +143,7 @@ def dummy_response(): @fixture def aggs_search(): - from elasticsearch_dsl import Search + from elasticsearch7_dsl import Search s = Search(index="flat-git") s.aggs.bucket("popular_files", "terms", field="files", size=2).metric( diff --git a/tests/test_aggs.py b/tests/test_aggs.py index 6c39383a3..2f8868eb9 100644 --- a/tests/test_aggs.py +++ b/tests/test_aggs.py @@ -17,7 +17,7 @@ from pytest import raises -from elasticsearch_dsl import aggs, query +from elasticsearch7_dsl import aggs, query def test_repr(): diff --git a/tests/test_analysis.py b/tests/test_analysis.py index 90445502b..056b2d8f1 100644 --- a/tests/test_analysis.py +++ b/tests/test_analysis.py @@ -18,7 +18,7 @@ from pytest import raises -from elasticsearch_dsl import analysis +from elasticsearch7_dsl import analysis def test_analyzer_serializes_as_name(): diff --git a/tests/test_connections.py b/tests/test_connections.py index 278760cc3..fcd2b233e 100644 --- a/tests/test_connections.py +++ b/tests/test_connections.py @@ -15,10 +15,10 @@ # specific language governing permissions and limitations # under the License. -from elasticsearch import Elasticsearch +from elasticsearch7 import Elasticsearch from pytest import raises -from elasticsearch_dsl import connections, serializer +from elasticsearch7_dsl import connections, serializer def test_default_connection_is_returned_by_default(): diff --git a/tests/test_document.py b/tests/test_document.py index 5e34f0dbb..7bedfc8be 100644 --- a/tests/test_document.py +++ b/tests/test_document.py @@ -23,7 +23,7 @@ from pytest import raises -from elasticsearch_dsl import ( +from elasticsearch7_dsl import ( Index, InnerDoc, Mapping, @@ -33,7 +33,7 @@ field, utils, ) -from elasticsearch_dsl.exceptions import IllegalOperation, ValidationException +from elasticsearch7_dsl.exceptions import IllegalOperation, ValidationException class MyInner(InnerDoc): diff --git a/tests/test_faceted_search.py b/tests/test_faceted_search.py index 6e4981319..f019fef74 100644 --- a/tests/test_faceted_search.py +++ b/tests/test_faceted_search.py @@ -19,7 +19,7 @@ import pytest -from elasticsearch_dsl.faceted_search import ( +from elasticsearch7_dsl.faceted_search import ( DateHistogramFacet, FacetedSearch, TermsFacet, diff --git a/tests/test_field.py b/tests/test_field.py index 8bc8d6f03..5385de2e5 100644 --- a/tests/test_field.py +++ b/tests/test_field.py @@ -22,7 +22,7 @@ import pytest from dateutil import tz -from elasticsearch_dsl import InnerDoc, Range, ValidationException, field +from elasticsearch7_dsl import InnerDoc, Range, ValidationException, field def test_date_range_deserialization(): diff --git a/tests/test_index.py b/tests/test_index.py index 3bdddb57b..c2179d6c9 100644 --- a/tests/test_index.py +++ b/tests/test_index.py @@ -20,7 +20,7 @@ from pytest import raises -from elasticsearch_dsl import Date, Document, Index, IndexTemplate, Text, analyzer +from elasticsearch7_dsl import Date, Document, Index, IndexTemplate, Text, analyzer class Post(Document): diff --git a/tests/test_integration/test_analysis.py b/tests/test_integration/test_analysis.py index 140099d4a..8212c13f6 100644 --- a/tests/test_integration/test_analysis.py +++ b/tests/test_integration/test_analysis.py @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -from elasticsearch_dsl import analyzer, token_filter, tokenizer +from elasticsearch7_dsl import analyzer, token_filter, tokenizer def test_simulate_with_just__builtin_tokenizer(client): diff --git a/tests/test_integration/test_count.py b/tests/test_integration/test_count.py index 4b2ed9584..6be4b1306 100644 --- a/tests/test_integration/test_count.py +++ b/tests/test_integration/test_count.py @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -from elasticsearch_dsl.search import Q, Search +from elasticsearch7_dsl.search import Q, Search def test_count_all(data_client): diff --git a/tests/test_integration/test_document.py b/tests/test_integration/test_document.py index 14b97a7f7..b61e9a36d 100644 --- a/tests/test_integration/test_document.py +++ b/tests/test_integration/test_document.py @@ -20,11 +20,11 @@ from ipaddress import ip_address import pytest -from elasticsearch import ConflictError, NotFoundError +from elasticsearch7 import ConflictError, NotFoundError from pytest import raises from pytz import timezone -from elasticsearch_dsl import ( +from elasticsearch7_dsl import ( Binary, Boolean, Date, @@ -43,7 +43,7 @@ Text, analyzer, ) -from elasticsearch_dsl.utils import AttrList +from elasticsearch7_dsl.utils import AttrList snowball = analyzer("my_snow", tokenizer="standard", filter=["lowercase", "snowball"]) diff --git a/tests/test_integration/test_examples/test_composite_aggs.py b/tests/test_integration/test_examples/test_composite_aggs.py index 16ad9b17f..c14001a72 100644 --- a/tests/test_integration/test_examples/test_composite_aggs.py +++ b/tests/test_integration/test_examples/test_composite_aggs.py @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -from elasticsearch_dsl import A, Search +from elasticsearch7_dsl import A, Search from .composite_agg import scan_aggs diff --git a/tests/test_integration/test_examples/test_parent_child.py b/tests/test_integration/test_examples/test_parent_child.py index fa2a3ab5e..f60967b56 100644 --- a/tests/test_integration/test_examples/test_parent_child.py +++ b/tests/test_integration/test_examples/test_parent_child.py @@ -19,7 +19,7 @@ from pytest import fixture -from elasticsearch_dsl import Q +from elasticsearch7_dsl import Q from .parent_child import Answer, Comment, Question, User, setup diff --git a/tests/test_integration/test_faceted_search.py b/tests/test_integration/test_faceted_search.py index de0a2b311..d8c10f2a8 100644 --- a/tests/test_integration/test_faceted_search.py +++ b/tests/test_integration/test_faceted_search.py @@ -19,8 +19,8 @@ import pytest -from elasticsearch_dsl import A, Boolean, Date, Document, Keyword -from elasticsearch_dsl.faceted_search import ( +from elasticsearch7_dsl import A, Boolean, Date, Document, Keyword +from elasticsearch7_dsl.faceted_search import ( DateHistogramFacet, FacetedSearch, NestedFacet, diff --git a/tests/test_integration/test_index.py b/tests/test_integration/test_index.py index ec7a23b0c..ced863fc8 100644 --- a/tests/test_integration/test_index.py +++ b/tests/test_integration/test_index.py @@ -17,7 +17,7 @@ import warnings -from elasticsearch_dsl import Date, Document, Index, IndexTemplate, Text, analysis +from elasticsearch7_dsl import Date, Document, Index, IndexTemplate, Text, analysis class Post(Document): diff --git a/tests/test_integration/test_mapping.py b/tests/test_integration/test_mapping.py index ff266a777..be4d195e3 100644 --- a/tests/test_integration/test_mapping.py +++ b/tests/test_integration/test_mapping.py @@ -17,7 +17,7 @@ from pytest import raises -from elasticsearch_dsl import analysis, exceptions, mapping +from elasticsearch7_dsl import analysis, exceptions, mapping def test_mapping_saved_into_es(write_client): diff --git a/tests/test_integration/test_search.py b/tests/test_integration/test_search.py index 0a338171c..474bfb658 100644 --- a/tests/test_integration/test_search.py +++ b/tests/test_integration/test_search.py @@ -20,11 +20,11 @@ import warnings -from elasticsearch import TransportError +from elasticsearch7 import TransportError from pytest import raises -from elasticsearch_dsl import Date, Document, Keyword, MultiSearch, Q, Search, Text -from elasticsearch_dsl.response import aggs +from elasticsearch7_dsl import Date, Document, Keyword, MultiSearch, Q, Search, Text +from elasticsearch7_dsl.response import aggs from .test_data import FLAT_DATA diff --git a/tests/test_integration/test_update_by_query.py b/tests/test_integration/test_update_by_query.py index 64485391a..dd3950dec 100644 --- a/tests/test_integration/test_update_by_query.py +++ b/tests/test_integration/test_update_by_query.py @@ -15,8 +15,8 @@ # specific language governing permissions and limitations # under the License. -from elasticsearch_dsl.search import Q -from elasticsearch_dsl.update_by_query import UpdateByQuery +from elasticsearch7_dsl.search import Q +from elasticsearch7_dsl.update_by_query import UpdateByQuery def test_update_by_query_no_script(write_client, setup_ubq_tests): diff --git a/tests/test_mapping.py b/tests/test_mapping.py index aa4939fbc..40a900ca8 100644 --- a/tests/test_mapping.py +++ b/tests/test_mapping.py @@ -17,7 +17,7 @@ import json -from elasticsearch_dsl import Keyword, Nested, Text, analysis, mapping +from elasticsearch7_dsl import Keyword, Nested, Text, analysis, mapping def test_mapping_can_has_fields(): diff --git a/tests/test_package.py b/tests/test_package.py index 8f8075dc0..e20c28b8e 100644 --- a/tests/test_package.py +++ b/tests/test_package.py @@ -15,8 +15,8 @@ # specific language governing permissions and limitations # under the License. -import elasticsearch_dsl +import elasticsearch7_dsl def test__all__is_sorted(): - assert elasticsearch_dsl.__all__ == sorted(elasticsearch_dsl.__all__) + assert elasticsearch7_dsl.__all__ == sorted(elasticsearch7_dsl.__all__) diff --git a/tests/test_query.py b/tests/test_query.py index 2c9823eff..a159d4b02 100644 --- a/tests/test_query.py +++ b/tests/test_query.py @@ -17,7 +17,7 @@ from pytest import raises -from elasticsearch_dsl import function, query +from elasticsearch7_dsl import function, query def test_empty_Q_is_match_all(): diff --git a/tests/test_result.py b/tests/test_result.py index a1f485edc..c8b1c9ffb 100644 --- a/tests/test_result.py +++ b/tests/test_result.py @@ -20,9 +20,9 @@ from pytest import fixture, raises -from elasticsearch_dsl import Date, Document, Object, Search, response -from elasticsearch_dsl.aggs import Terms -from elasticsearch_dsl.response.aggs import AggResponse, Bucket, BucketData +from elasticsearch7_dsl import Date, Document, Object, Search, response +from elasticsearch7_dsl.aggs import Terms +from elasticsearch7_dsl.response.aggs import AggResponse, Bucket, BucketData @fixture diff --git a/tests/test_search.py b/tests/test_search.py index cf6f1c86a..d990b744d 100644 --- a/tests/test_search.py +++ b/tests/test_search.py @@ -19,9 +19,9 @@ from pytest import raises -from elasticsearch_dsl import Document, Q, query, search -from elasticsearch_dsl.connections import CLIENT_HAS_NAMED_BODY_PARAMS -from elasticsearch_dsl.exceptions import IllegalOperation +from elasticsearch7_dsl import Document, Q, query, search +from elasticsearch7_dsl.connections import CLIENT_HAS_NAMED_BODY_PARAMS +from elasticsearch7_dsl.exceptions import IllegalOperation def test_expand__to_dot_is_respected(): diff --git a/tests/test_update_by_query.py b/tests/test_update_by_query.py index c10fde878..ff05767b6 100644 --- a/tests/test_update_by_query.py +++ b/tests/test_update_by_query.py @@ -17,8 +17,8 @@ from copy import deepcopy -from elasticsearch_dsl import Q, UpdateByQuery -from elasticsearch_dsl.response import UpdateByQueryResponse +from elasticsearch7_dsl import Q, UpdateByQuery +from elasticsearch7_dsl.response import UpdateByQueryResponse def test_ubq_starts_with_no_query(): diff --git a/tests/test_utils.py b/tests/test_utils.py index 38caad45a..598b66666 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -19,7 +19,7 @@ from pytest import raises -from elasticsearch_dsl import Q, serializer, utils +from elasticsearch7_dsl import Q, serializer, utils def test_attrdict_pickle(): diff --git a/tests/test_validation.py b/tests/test_validation.py index ff20b326c..2f10b228e 100644 --- a/tests/test_validation.py +++ b/tests/test_validation.py @@ -19,7 +19,7 @@ from pytest import raises -from elasticsearch_dsl import ( +from elasticsearch7_dsl import ( Boolean, Date, Document, @@ -29,7 +29,7 @@ Object, Text, ) -from elasticsearch_dsl.exceptions import ValidationException +from elasticsearch7_dsl.exceptions import ValidationException class Author(InnerDoc): diff --git a/tests/test_wrappers.py b/tests/test_wrappers.py index 454722711..f55ba40a8 100644 --- a/tests/test_wrappers.py +++ b/tests/test_wrappers.py @@ -19,7 +19,7 @@ import pytest -from elasticsearch_dsl import Range +from elasticsearch7_dsl import Range @pytest.mark.parametrize(