diff --git a/.gitignore b/.gitignore index ebf415e9..d857636f 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ venv # sample code for GitHub issues issues +.direnv +.envrc diff --git a/elasticsearch_dsl/__init__.py b/elasticsearch_dsl/__init__.py index 7426d654..55ca065e 100644 --- a/elasticsearch_dsl/__init__.py +++ b/elasticsearch_dsl/__init__.py @@ -80,12 +80,12 @@ ) from .function import SF from .index import ( + AsyncComposableIndexTemplate, AsyncIndex, AsyncIndexTemplate, - AsyncNewIndexTemplate, + ComposableIndexTemplate, Index, IndexTemplate, - NewIndexTemplate, ) from .mapping import AsyncMapping, Mapping from .query import Q, Query @@ -109,6 +109,7 @@ "A", "Agg", "AggResponse", + "AsyncComposableIndexTemplate", "AsyncDocument", "AsyncEmptySearch", "AsyncFacetedSearch", @@ -116,7 +117,6 @@ "AsyncIndexTemplate", "AsyncMapping", "AsyncMultiSearch", - "AsyncNewIndexTemplate", "AsyncSearch", "AsyncUpdateByQuery", "AttrDict", @@ -125,6 +125,7 @@ "Boolean", "Byte", "Completion", + "ComposableIndexTemplate", "ConstantKeyword", "CustomField", "Date", @@ -166,7 +167,6 @@ "Murmur3", "Nested", "NestedFacet", - "NewIndexTemplate", "Object", "Percolator", "Q", diff --git a/elasticsearch_dsl/_async/index.py b/elasticsearch_dsl/_async/index.py index 35fc0030..a96a7fa4 100644 --- a/elasticsearch_dsl/_async/index.py +++ b/elasticsearch_dsl/_async/index.py @@ -73,7 +73,7 @@ async def save( ) -class AsyncNewIndexTemplate: +class AsyncComposableIndexTemplate: def __init__( self, name: str, @@ -150,16 +150,16 @@ def as_template( template_name, pattern or self._name, index=self, order=order ) - def as_new_template( + def as_composable_template( self, template_name: str, pattern: Optional[str] = None, priority: Optional[int] = None, - ) -> AsyncNewIndexTemplate: + ) -> AsyncComposableIndexTemplate: # TODO: should we allow pattern to be a top-level arg? # or maybe have an IndexPattern that allows for it and have # Document._index be that? - return AsyncNewIndexTemplate( + return AsyncComposableIndexTemplate( template_name, pattern or self._name, index=self, priority=priority ) diff --git a/elasticsearch_dsl/_sync/index.py b/elasticsearch_dsl/_sync/index.py index a2193d04..4a63cc13 100644 --- a/elasticsearch_dsl/_sync/index.py +++ b/elasticsearch_dsl/_sync/index.py @@ -69,7 +69,7 @@ def save(self, using: Optional[UsingType] = None) -> "ObjectApiResponse[Any]": return es.indices.put_template(name=self._template_name, body=self.to_dict()) -class NewIndexTemplate: +class ComposableIndexTemplate: def __init__( self, name: str, @@ -140,16 +140,16 @@ def as_template( template_name, pattern or self._name, index=self, order=order ) - def as_new_template( + def as_composable_template( self, template_name: str, pattern: Optional[str] = None, priority: Optional[int] = None, - ) -> NewIndexTemplate: + ) -> ComposableIndexTemplate: # TODO: should we allow pattern to be a top-level arg? # or maybe have an IndexPattern that allows for it and have # Document._index be that? - return NewIndexTemplate( + return ComposableIndexTemplate( template_name, pattern or self._name, index=self, priority=priority ) diff --git a/elasticsearch_dsl/index.py b/elasticsearch_dsl/index.py index f840e4b2..368e58d4 100644 --- a/elasticsearch_dsl/index.py +++ b/elasticsearch_dsl/index.py @@ -16,8 +16,8 @@ # under the License. from ._async.index import ( # noqa: F401 + AsyncComposableIndexTemplate, AsyncIndex, AsyncIndexTemplate, - AsyncNewIndexTemplate, ) -from ._sync.index import Index, IndexTemplate, NewIndexTemplate # noqa: F401 +from ._sync.index import ComposableIndexTemplate, Index, IndexTemplate # noqa: F401 diff --git a/examples/alias_migration.py b/examples/alias_migration.py index b8cb906a..ba1204a9 100644 --- a/examples/alias_migration.py +++ b/examples/alias_migration.py @@ -82,7 +82,9 @@ def setup() -> None: deploy. """ # create an index template - index_template = BlogPost._index.as_new_template(ALIAS, PATTERN, priority=PRIORITY) + index_template = BlogPost._index.as_composable_template( + ALIAS, PATTERN, priority=PRIORITY + ) # upload the template into elasticsearch # potentially overriding the one already there index_template.save() diff --git a/examples/async/alias_migration.py b/examples/async/alias_migration.py index 9e01368b..2f9dbf73 100644 --- a/examples/async/alias_migration.py +++ b/examples/async/alias_migration.py @@ -83,7 +83,9 @@ async def setup() -> None: deploy. """ # create an index template - index_template = BlogPost._index.as_new_template(ALIAS, PATTERN, priority=PRIORITY) + index_template = BlogPost._index.as_composable_template( + ALIAS, PATTERN, priority=PRIORITY + ) # upload the template into elasticsearch # potentially overriding the one already there await index_template.save() diff --git a/examples/async/parent_child.py b/examples/async/parent_child.py index 70fc2325..c96455ed 100644 --- a/examples/async/parent_child.py +++ b/examples/async/parent_child.py @@ -226,7 +226,7 @@ async def save(self, **kwargs: Any) -> None: # type: ignore[override] async def setup() -> None: """Create an IndexTemplate and save it into elasticsearch.""" - index_template = Post._index.as_new_template("base", priority=100) + index_template = Post._index.as_composable_template("base", priority=100) await index_template.save() diff --git a/examples/parent_child.py b/examples/parent_child.py index 335205a4..09b03adb 100644 --- a/examples/parent_child.py +++ b/examples/parent_child.py @@ -225,7 +225,7 @@ def save(self, **kwargs: Any) -> None: # type: ignore[override] def setup() -> None: """Create an IndexTemplate and save it into elasticsearch.""" - index_template = Post._index.as_new_template("base", priority=100) + index_template = Post._index.as_composable_template("base", priority=100) index_template.save() diff --git a/tests/test_integration/_async/test_index.py b/tests/test_integration/_async/test_index.py index e2f19252..db570cc7 100644 --- a/tests/test_integration/_async/test_index.py +++ b/tests/test_integration/_async/test_index.py @@ -19,10 +19,10 @@ from elasticsearch import AsyncElasticsearch from elasticsearch_dsl import ( + AsyncComposableIndexTemplate, AsyncDocument, AsyncIndex, AsyncIndexTemplate, - AsyncNewIndexTemplate, Date, Text, analysis, @@ -57,8 +57,10 @@ async def test_index_template_works(async_write_client: AsyncElasticsearch) -> N @pytest.mark.asyncio -async def test_new_index_template_works(async_write_client: AsyncElasticsearch) -> None: - it = AsyncNewIndexTemplate("test-template", "test-*") +async def test_composable_index_template_works( + async_write_client: AsyncElasticsearch, +) -> None: + it = AsyncComposableIndexTemplate("test-template", "test-*") it.document(Post) it.settings(number_of_replicas=0, number_of_shards=1) await it.save() diff --git a/tests/test_integration/_sync/test_index.py b/tests/test_integration/_sync/test_index.py index 277faa2c..9f8da73e 100644 --- a/tests/test_integration/_sync/test_index.py +++ b/tests/test_integration/_sync/test_index.py @@ -19,11 +19,11 @@ from elasticsearch import Elasticsearch from elasticsearch_dsl import ( + ComposableIndexTemplate, Date, Document, Index, IndexTemplate, - NewIndexTemplate, Text, analysis, ) @@ -57,8 +57,10 @@ def test_index_template_works(write_client: Elasticsearch) -> None: @pytest.mark.sync -def test_new_index_template_works(write_client: Elasticsearch) -> None: - it = NewIndexTemplate("test-template", "test-*") +def test_composable_index_template_works( + write_client: Elasticsearch, +) -> None: + it = ComposableIndexTemplate("test-template", "test-*") it.document(Post) it.settings(number_of_replicas=0, number_of_shards=1) it.save() diff --git a/utils/run-unasync.py b/utils/run-unasync.py index 27d1f04b..7a55e7b5 100644 --- a/utils/run-unasync.py +++ b/utils/run-unasync.py @@ -57,7 +57,7 @@ def main(check=False): "AsyncIndexMeta": "IndexMeta", "AsyncIndexTemplate": "IndexTemplate", "AsyncIndex": "Index", - "AsyncNewIndexTemplate": "NewIndexTemplate", + "AsyncComposableIndexTemplate": "ComposableIndexTemplate", "AsyncUpdateByQuery": "UpdateByQuery", "AsyncMapping": "Mapping", "AsyncFacetedSearch": "FacetedSearch",