From 434a9d9ba08e3dfe2afda289f2f85e0c50f8346e Mon Sep 17 00:00:00 2001 From: njooma Date: Wed, 19 Jul 2023 19:24:58 +0000 Subject: [PATCH 1/4] Bump version to 0.4.5rc1 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c83deb9f3..7da31794c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "viam-sdk" -version = "0.4.4" +version = "0.4.5rc1" description = "Viam Robotics Python SDK" authors = [ "Naveed " ] license = "Apache-2.0" From 715af06c7c7d105df4ea4a98e932faf5e8a6d613 Mon Sep 17 00:00:00 2001 From: Naveed Jooma Date: Wed, 19 Jul 2023 16:29:42 -0400 Subject: [PATCH 2/4] [hotfix] Make it such that depth images always return RawImage (#361) --- src/viam/components/camera/client.py | 4 ++-- src/viam/media/video.py | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/viam/components/camera/client.py b/src/viam/components/camera/client.py index 76e08c73b..c3c76942b 100644 --- a/src/viam/components/camera/client.py +++ b/src/viam/components/camera/client.py @@ -26,8 +26,8 @@ def get_image_from_response(data: bytes, response_mime_type: str, request_mime_type: Optional[str] = None) -> Union[Image.Image, RawImage]: if request_mime_type is None: request_mime_type = response_mime_type - _, is_lazy = CameraMimeType.from_lazy(request_mime_type) - if is_lazy or not (CameraMimeType.is_supported(response_mime_type)): + mime_type, is_lazy = CameraMimeType.from_lazy(request_mime_type) + if is_lazy or mime_type._should_be_raw: image = RawImage(data=data, mime_type=response_mime_type) return image return Image.open(BytesIO(data), formats=LIBRARY_SUPPORTED_FORMATS) diff --git a/src/viam/media/video.py b/src/viam/media/video.py index 912ea3cd3..c1c104475 100644 --- a/src/viam/media/video.py +++ b/src/viam/media/video.py @@ -3,7 +3,7 @@ from io import BytesIO from typing import List, NamedTuple, Optional, Tuple, Union -from PIL import Image +from PIL import Image, UnidentifiedImageError from typing_extensions import Self from viam.errors import NotSupportedError @@ -94,6 +94,12 @@ def encode_image(self, image: Union[Image.Image, RawImage]) -> bytes: else: raise ValueError(f"Cannot encode image to {self}") + @property + def _should_be_raw(self) -> bool: + return self in [CameraMimeType.UNSUPPORTED, CameraMimeType.PCD, CameraMimeType.VIAM_RAW_DEPTH] or not CameraMimeType.is_supported( + self + ) + @classmethod def is_supported(cls, mime_type: str) -> bool: """Check if the provided mime_type is supported. @@ -185,7 +191,10 @@ def image(self) -> Optional[Image.Image]: self._image_decoded = True return self._image - self._image = Image.open(BytesIO(self.data), formats=LIBRARY_SUPPORTED_FORMATS) + try: + self._image = Image.open(BytesIO(self.data), formats=LIBRARY_SUPPORTED_FORMATS) + except UnidentifiedImageError: + self._image = None self._image_decoded = True return self._image From 145d9da9c734d80ef87b9fed0bb7a941e8df6612 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 19 Jul 2023 16:37:42 -0400 Subject: [PATCH 3/4] rc-0.4.5rc2 (#362) Co-authored-by: njooma --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7da31794c..06e6947ac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "viam-sdk" -version = "0.4.5rc1" +version = "0.4.5rc2" description = "Viam Robotics Python SDK" authors = [ "Naveed " ] license = "Apache-2.0" From b944222153752dfd9d2fa9bc93830475e06e788d Mon Sep 17 00:00:00 2001 From: njooma Date: Wed, 19 Jul 2023 20:52:05 +0000 Subject: [PATCH 4/4] Bump version to 0.4.5 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 06e6947ac..43b4d4e8c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "viam-sdk" -version = "0.4.5rc2" +version = "0.4.5" description = "Viam Robotics Python SDK" authors = [ "Naveed " ] license = "Apache-2.0"