From 7e7a2915506ffc72d560f844a1cb78ad442a9d88 Mon Sep 17 00:00:00 2001 From: samsja Date: Fri, 28 Apr 2023 09:30:14 +0200 Subject: [PATCH 1/4] fix: does not do dicti equal Signed-off-by: samsja --- docarray/base_doc/doc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docarray/base_doc/doc.py b/docarray/base_doc/doc.py index 1fa9bc3e376..13e2c6ea254 100644 --- a/docarray/base_doc/doc.py +++ b/docarray/base_doc/doc.py @@ -140,7 +140,7 @@ def __setattr__(self, field, value) -> None: object.__setattr__(self, '__dict__', dict_ref) def __eq__(self, other) -> bool: - if self.dict().keys() != other.dict().keys(): + if self.__fields__.keys() != other.__fields__.keys(): return False for field_name in self.__fields__: From 74f86200eb812631e640db00bdd2196af1051511 Mon Sep 17 00:00:00 2001 From: samsja Date: Fri, 28 Apr 2023 09:39:45 +0200 Subject: [PATCH 2/4] fix: fix repr Signed-off-by: samsja --- docarray/array/doc_list/doc_list.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docarray/array/doc_list/doc_list.py b/docarray/array/doc_list/doc_list.py index a9deba3bec6..ef1e5330ffc 100644 --- a/docarray/array/doc_list/doc_list.py +++ b/docarray/array/doc_list/doc_list.py @@ -292,3 +292,6 @@ def __class_getitem__(cls, item: Union[Type[BaseDoc], TypeVar, str]): return AnyDocArray.__class_getitem__.__func__(cls, item) # type: ignore else: return super().__class_getitem__(item) + + def __repr__(self): + return AnyDocArray.__repr__(self) From c156a6979dda283471f529c0231ab01fb3ebed2d Mon Sep 17 00:00:00 2001 From: samsja Date: Fri, 28 Apr 2023 10:37:10 +0200 Subject: [PATCH 3/4] fix: add test Signed-off-by: samsja --- tests/units/document/test_base_document.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/units/document/test_base_document.py b/tests/units/document/test_base_document.py index e986ff0f1bb..0d62c069dd7 100644 --- a/tests/units/document/test_base_document.py +++ b/tests/units/document/test_base_document.py @@ -24,3 +24,22 @@ class MyDocument(BaseDoc): assert doc1.content == 'Core content updated' assert doc1.title == 'Title' assert doc1.tags_ == ['python', 'AI', 'docarray'] + + +def test_equal_nested_docs(): + import numpy as np + + from docarray import BaseDoc, DocList + from docarray.typing import NdArray + + class SimpleDoc(BaseDoc): + simple_tens: NdArray[10] + + class NestedDoc(BaseDoc): + docs: DocList[SimpleDoc] + + nested_docs = NestedDoc( + docs=DocList[SimpleDoc]([SimpleDoc(simple_tens=np.ones(10)) for j in range(2)]), + ) + + assert nested_docs == nested_docs From 6dabb3cde46e4f9e533aefd5ff80a4a9a850f404 Mon Sep 17 00:00:00 2001 From: samsja Date: Fri, 28 Apr 2023 10:37:48 +0200 Subject: [PATCH 4/4] fix: mypy Signed-off-by: samsja --- docarray/array/doc_list/doc_list.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docarray/array/doc_list/doc_list.py b/docarray/array/doc_list/doc_list.py index ef1e5330ffc..132cdcb9f66 100644 --- a/docarray/array/doc_list/doc_list.py +++ b/docarray/array/doc_list/doc_list.py @@ -294,4 +294,4 @@ def __class_getitem__(cls, item: Union[Type[BaseDoc], TypeVar, str]): return super().__class_getitem__(item) def __repr__(self): - return AnyDocArray.__repr__(self) + return AnyDocArray.__repr__(self) # type: ignore