Skip to content

Commit 6d2093f

Browse files
authored
fix(document): set content field to none clear all attributes (#220)
1 parent 14be8f1 commit 6d2093f

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

docarray/document/mixins/property.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,20 @@ def content(self) -> Optional['DocumentContentType']:
2525

2626
@_PropertyMixin.text.setter
2727
def text(self, value: str):
28-
self._clear_content()
28+
if value is not None:
29+
self._clear_content()
2930
self._data.text = value
3031

3132
@_PropertyMixin.blob.setter
3233
def blob(self, value: bytes):
33-
self._clear_content()
34+
if value is not None:
35+
self._clear_content()
3436
self._data.blob = value
3537

3638
@_PropertyMixin.tensor.setter
3739
def tensor(self, value: 'ArrayType'):
38-
self._clear_content()
40+
if value is not None:
41+
self._clear_content()
3942
self._data.tensor = value
4043

4144
@content.setter

tests/unit/array/test_base_getsetdel.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,21 @@ def test_getter_int_str(docs):
8181

8282
with pytest.raises(KeyError):
8383
docs['adsad']
84+
85+
86+
def test_set_content_none():
87+
da = DocumentArray(
88+
[
89+
Document(mime_type='image'),
90+
Document(mime_type='image'),
91+
Document(mime_type='text'),
92+
]
93+
)
94+
95+
txt_da = da.find({'mime_type': {'$eq': 'image'}})
96+
assert len(txt_da) == 2
97+
txt_da.texts = ['hello', 'world']
98+
assert txt_da.texts == ['hello', 'world']
99+
assert da.texts == ['hello', 'world', '']
100+
da.tensors = None
101+
assert da.texts == ['hello', 'world', '']

0 commit comments

Comments
 (0)