From 9a17417afd03719d0a3142eaf1d61537e38d103f Mon Sep 17 00:00:00 2001 From: jupyterjazz Date: Tue, 18 Jul 2023 15:42:47 +0200 Subject: [PATCH 1/2] fix: weaviate handles lowercase index names Signed-off-by: jupyterjazz --- docarray/index/backends/weaviate.py | 9 +++++++++ tests/index/weaviate/test_column_config_weaviate.py | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/docarray/index/backends/weaviate.py b/docarray/index/backends/weaviate.py index b001888dd98..18fd9ee2ba2 100644 --- a/docarray/index/backends/weaviate.py +++ b/docarray/index/backends/weaviate.py @@ -257,6 +257,15 @@ class DBConfig(BaseDocIndex.DBConfig): } ) + def __post_init__(self): + # To prevent errors, it is important to capitalize the provided index name + # when working with Weaviate, as it stores index names in a capitalized format. + self.index_name = ( + self.index_name[0].upper() + self.index_name[1:] + if self.index_name + else None + ) + @dataclass class RuntimeConfig(BaseDocIndex.RuntimeConfig): """Dataclass that contains all "dynamic" configurations of WeaviateDocumentIndex.""" diff --git a/tests/index/weaviate/test_column_config_weaviate.py b/tests/index/weaviate/test_column_config_weaviate.py index fd5a18d7560..ab54ce0b818 100644 --- a/tests/index/weaviate/test_column_config_weaviate.py +++ b/tests/index/weaviate/test_column_config_weaviate.py @@ -48,3 +48,9 @@ class StringDoc(BaseDoc): index = WeaviateDocumentIndex[StringDoc]() assert index.index_name == StringDoc.__name__ + + index = WeaviateDocumentIndex[StringDoc](index_name='Index_name') + assert index.index_name == 'Index_name' + + index = WeaviateDocumentIndex[StringDoc](index_name='Index_name') + assert index.index_name == 'Index_name' From 00147c69702475140a81951beb3755ac96658d13 Mon Sep 17 00:00:00 2001 From: jupyterjazz Date: Tue, 18 Jul 2023 15:52:43 +0200 Subject: [PATCH 2/2] test: improve testing Signed-off-by: jupyterjazz --- docarray/index/backends/weaviate.py | 1 + tests/index/weaviate/test_column_config_weaviate.py | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docarray/index/backends/weaviate.py b/docarray/index/backends/weaviate.py index 18fd9ee2ba2..13eb6893753 100644 --- a/docarray/index/backends/weaviate.py +++ b/docarray/index/backends/weaviate.py @@ -260,6 +260,7 @@ class DBConfig(BaseDocIndex.DBConfig): def __post_init__(self): # To prevent errors, it is important to capitalize the provided index name # when working with Weaviate, as it stores index names in a capitalized format. + # Can't use .capitalize() because it modifies the whole string (See test). self.index_name = ( self.index_name[0].upper() + self.index_name[1:] if self.index_name diff --git a/tests/index/weaviate/test_column_config_weaviate.py b/tests/index/weaviate/test_column_config_weaviate.py index ab54ce0b818..f377d459794 100644 --- a/tests/index/weaviate/test_column_config_weaviate.py +++ b/tests/index/weaviate/test_column_config_weaviate.py @@ -49,8 +49,8 @@ class StringDoc(BaseDoc): index = WeaviateDocumentIndex[StringDoc]() assert index.index_name == StringDoc.__name__ - index = WeaviateDocumentIndex[StringDoc](index_name='Index_name') - assert index.index_name == 'Index_name' + index = WeaviateDocumentIndex[StringDoc](index_name='BaseDoc') + assert index.index_name == 'BaseDoc' - index = WeaviateDocumentIndex[StringDoc](index_name='Index_name') + index = WeaviateDocumentIndex[StringDoc](index_name='index_name') assert index.index_name == 'Index_name'