Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docarray/documents/audio.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ class MultiModalDoc(Document):

# equivalent to

mmdoc.audio.bytes = mmdoc.audio.url.load_bytes()
mmdoc.audio.bytes_ = mmdoc.audio.url.load_bytes()

mmdoc.audio.tensor, mmdoc.audio.frame_rate = mmdoc.audio.bytes.load()

Expand All @@ -99,7 +99,7 @@ class MultiModalDoc(Document):
url: Optional[AudioUrl]
tensor: Optional[AudioTensor]
embedding: Optional[AnyEmbedding]
bytes: Optional[AudioBytes]
bytes_: Optional[AudioBytes]
frame_rate: Optional[int]

@classmethod
Expand Down
6 changes: 4 additions & 2 deletions docarray/documents/image.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ class ImageDoc(BaseDocument):
from docarray.typing import AnyEmbedding
from typing import Optional


# extend it
class MyImage(ImageDoc):
second_embedding: Optional[AnyEmbedding]
Expand All @@ -66,6 +67,7 @@ class MyImage(ImageDoc):
from docarray import BaseDocument
from docarray.documents import ImageDoc, TextDoc


# compose it
class MultiModalDoc(BaseDocument):
image: Image
Expand All @@ -78,15 +80,15 @@ class MultiModalDoc(BaseDocument):
)
mmdoc.image.tensor = mmdoc.image.url.load()
# or
mmdoc.image.bytes = mmdoc.image.url.load_bytes()
mmdoc.image.bytes_ = mmdoc.image.url.load_bytes()

mmdoc.image.tensor = mmdoc.image.bytes.load()
"""

url: Optional[ImageUrl]
tensor: Optional[ImageTensor]
embedding: Optional[AnyEmbedding]
bytes: Optional[ImageBytes]
bytes_: Optional[ImageBytes]

@classmethod
def validate(
Expand Down
4 changes: 2 additions & 2 deletions docarray/documents/mesh/mesh_3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ class MultiModalDoc(BaseDocument):
mmdoc.mesh.tensors = mmdoc.mesh.url.load()

# or
mmdoc.mesh.bytes = mmdoc.mesh.url.load_bytes()
mmdoc.mesh.bytes_ = mmdoc.mesh.url.load_bytes()


You can display your 3D mesh in a notebook from either its url, or its tensors:
Expand All @@ -104,7 +104,7 @@ class MultiModalDoc(BaseDocument):
url: Optional[Mesh3DUrl]
tensors: Optional[VerticesAndFaces]
embedding: Optional[AnyEmbedding]
bytes: Optional[bytes]
bytes_: Optional[bytes]

@classmethod
def validate(
Expand Down
6 changes: 4 additions & 2 deletions docarray/documents/point_cloud/point_cloud_3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ class PointCloud3D(BaseDocument):
from docarray.typing import AnyEmbedding
from typing import Optional


# extend it
class MyPointCloud3D(PointCloud3D):
second_embedding: Optional[AnyEmbedding]
Expand All @@ -73,6 +74,7 @@ class MyPointCloud3D(PointCloud3D):
from docarray import BaseDocument
from docarray.documents import PointCloud3D, Text


# compose it
class MultiModalDoc(BaseDocument):
point_cloud: PointCloud3D
Expand All @@ -89,7 +91,7 @@ class MultiModalDoc(BaseDocument):

# or

mmdoc.point_cloud.bytes = mmdoc.point_cloud.url.load_bytes()
mmdoc.point_cloud.bytes_ = mmdoc.point_cloud.url.load_bytes()


You can display your point cloud from either its url, or its tensors:
Expand All @@ -112,7 +114,7 @@ class MultiModalDoc(BaseDocument):
url: Optional[PointCloud3DUrl]
tensors: Optional[PointsAndColors]
embedding: Optional[AnyEmbedding]
bytes: Optional[bytes]
bytes_: Optional[bytes]

@classmethod
def validate(
Expand Down
4 changes: 2 additions & 2 deletions docarray/documents/text.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ class MultiModalDoc(BaseDocument):

# or

mmdoc.text_doc.bytes = mmdoc.text_doc.url.load_bytes()
mmdoc.text_doc.bytes_ = mmdoc.text_doc.url.load_bytes()


This Document can be compared against another Document of the same type or a string.
Expand All @@ -101,7 +101,7 @@ class MultiModalDoc(BaseDocument):
text: Optional[str]
url: Optional[TextUrl]
embedding: Optional[AnyEmbedding]
bytes: Optional[bytes]
bytes_: Optional[bytes]

def __init__(self, text: Optional[str] = None, **kwargs):
if 'text' not in kwargs:
Expand Down
4 changes: 2 additions & 2 deletions docarray/documents/video.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ class MultiModalDoc(BaseDocument):

# or

mmdoc.video.bytes = mmdoc.video.url.load_bytes()
mmdoc.video.bytes_ = mmdoc.video.url.load_bytes()

"""

Expand All @@ -102,7 +102,7 @@ class MultiModalDoc(BaseDocument):
tensor: Optional[VideoTensor]
key_frame_indices: Optional[AnyTensor]
embedding: Optional[AnyEmbedding]
bytes: Optional[bytes]
bytes_: Optional[bytes]

@classmethod
def validate(
Expand Down
2 changes: 1 addition & 1 deletion tests/integrations/predefined_document/test_audio.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ def test_audio_tensorflow():

def test_audio_bytes():
audio = parse_obj_as(AudioDoc, torch.zeros(10, 10, 3))
audio.bytes = audio.tensor.to_bytes()
audio.bytes_ = audio.tensor.to_bytes()


def test_audio_shortcut_doc():
Expand Down
8 changes: 4 additions & 4 deletions tests/integrations/predefined_document/test_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class MyDoc(BaseDocument):
def test_byte():

img = ImageDoc(url=REMOTE_JPG)
img.bytes = img.url.load_bytes()
img.bytes_ = img.url.load_bytes()


@pytest.mark.slow
Expand All @@ -79,7 +79,7 @@ def test_byte_from_tensor():

img = ImageDoc(url=REMOTE_JPG)
img.tensor = img.url.load()
img.bytes = img.tensor.to_bytes()
img.bytes_ = img.tensor.to_bytes()

assert isinstance(img.bytes, bytes)
assert len(img.bytes) > 0
assert isinstance(img.bytes_, bytes)
assert len(img.bytes_) > 0
4 changes: 2 additions & 2 deletions tests/units/array/test_array_from_to_csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,12 @@ def test_from_csv_nested(nested_doc_cls):
assert doc.image.__class__ == ImageDoc
assert doc.image.tensor is None
assert doc.image.embedding is None
assert doc.image.bytes is None
assert doc.image.bytes_ is None

assert doc.image2.__class__ == ImageDoc
assert doc.image2.tensor is None
assert doc.image2.embedding is None
assert doc.image2.bytes is None
assert doc.image2.bytes_ is None

assert da[0].image2.url == 'image_10.png'
assert da[1].image2.url is None
Expand Down
2 changes: 1 addition & 1 deletion tests/units/array/test_array_from_to_pandas.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def test_to_from_pandas_df(nested_doc_cls):
'image__url',
'image__tensor',
'image__embedding',
'image__bytes',
'image__bytes_',
]
).all()

Expand Down
2 changes: 1 addition & 1 deletion tests/units/test_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class Painting(BaseDocument):
'img__url',
'img__tensor',
'img__embedding',
'img__bytes',
'img__bytes_',
]


Expand Down