From c17eb8ed70a50f529c90fecacfd9e3be2cd85766 Mon Sep 17 00:00:00 2001 From: Iuri de Silvio Date: Sun, 27 Jul 2025 10:52:03 +0200 Subject: [PATCH 01/10] Replace pillow-heif with pi-heif --- requirements.txt | 2 +- roboflow/util/image_utils.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 0ca7bcb5..71092638 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,7 @@ numpy>=1.18.5 opencv-python-headless==4.10.0.84 Pillow>=7.1.2 # https://github.com/roboflow/roboflow-python/issues/390 -pillow-heif<2 +pi-heif<2 pillow-avif-plugin<2 python-dateutil python-dotenv diff --git a/roboflow/util/image_utils.py b/roboflow/util/image_utils.py index 63b3f81b..0b10e096 100644 --- a/roboflow/util/image_utils.py +++ b/roboflow/util/image_utils.py @@ -4,14 +4,15 @@ import os import urllib +import piheif # type: ignore[import-untyped] + # Third-party imports import pillow_avif # type: ignore[import-untyped] -import pillow_heif # type: ignore[import-untyped] import requests import yaml from PIL import Image -pillow_heif.register_heif_opener(thumbnails=False) # Register for HEIF/HEIC +piheif.register_heif_opener(thumbnails=False) # Register for HEIF/HEIC pillow_avif = pillow_avif # Reference pillow_avif to not remove import by accident From b293e96dfd79986586b229b61c338adb0243405f Mon Sep 17 00:00:00 2001 From: Iuri de Silvio Date: Sun, 27 Jul 2025 11:04:58 +0200 Subject: [PATCH 02/10] bump python version for ruff and mypy --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 37cd89bb..9e6086c8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ target = ["test", "roboflow"] tests = ["B201", "B301"] [tool.ruff] -target-version = "py38" +target-version = "py39" line-length = 120 [tool.ruff.lint] @@ -100,7 +100,7 @@ banned-module-level-imports = [ ] [tool.mypy] -python_version = "3.8" +python_version = "3.9" exclude = ["^build/"] [[tool.mypy.overrides]] From 460696ddb1b5b07f4bc9370fd143a193bcc2b4a3 Mon Sep 17 00:00:00 2001 From: Iuri de Silvio Date: Sun, 27 Jul 2025 11:06:09 +0200 Subject: [PATCH 03/10] ignore UP ruff errors --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 9e6086c8..0191954b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,6 +45,7 @@ ignore = [ "T", "TD", "TRY", + "UP", ] # Exclude a variety of commonly ignored directories. From 18dbdc8230b56454a5bb967e3a10b6ed19a1573d Mon Sep 17 00:00:00 2001 From: Iuri de Silvio Date: Sun, 27 Jul 2025 11:15:57 +0200 Subject: [PATCH 04/10] fix mypy errors --- pyproject.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0191954b..8707ab3d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -112,9 +112,7 @@ module = [ "IPython.display.*", # ipywidgets is an optional dependency "ipywidgets.*", - # matplotlib typing is not available for Python 3.8 - # remove this when we stop supporting Python 3.8 - "matplotlib.*", + "pi_heif.*", "requests_toolbelt.*", "torch.*", "ultralytics.*", From c94212066dd575921176ade29b0eea2194d6c32f Mon Sep 17 00:00:00 2001 From: Iuri de Silvio Date: Sun, 27 Jul 2025 11:17:30 +0200 Subject: [PATCH 05/10] pi_heif --- roboflow/util/image_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roboflow/util/image_utils.py b/roboflow/util/image_utils.py index 0b10e096..4c34815f 100644 --- a/roboflow/util/image_utils.py +++ b/roboflow/util/image_utils.py @@ -4,9 +4,9 @@ import os import urllib -import piheif # type: ignore[import-untyped] # Third-party imports +import pi_heif # type: ignore[import-untyped] import pillow_avif # type: ignore[import-untyped] import requests import yaml From 41f434fc3dd99b5f6983d4660fe2c915b222905e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 27 Jul 2025 09:17:39 +0000 Subject: [PATCH 06/10] =?UTF-8?q?fix(pre=5Fcommit):=20=F0=9F=8E=A8=20auto?= =?UTF-8?q?=20format=20pre-commit=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roboflow/util/image_utils.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/roboflow/util/image_utils.py b/roboflow/util/image_utils.py index 4c34815f..287e9d27 100644 --- a/roboflow/util/image_utils.py +++ b/roboflow/util/image_utils.py @@ -4,9 +4,7 @@ import os import urllib - # Third-party imports -import pi_heif # type: ignore[import-untyped] import pillow_avif # type: ignore[import-untyped] import requests import yaml From d8297a74d656ab6127a2ec5bae7f3c5239eba0d7 Mon Sep 17 00:00:00 2001 From: Iuri de Silvio Date: Sun, 27 Jul 2025 11:18:02 +0200 Subject: [PATCH 07/10] . --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8707ab3d..cc65a554 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -112,7 +112,6 @@ module = [ "IPython.display.*", # ipywidgets is an optional dependency "ipywidgets.*", - "pi_heif.*", "requests_toolbelt.*", "torch.*", "ultralytics.*", From 40345c766e715c27ed97e04d78648b73f303c9b9 Mon Sep 17 00:00:00 2001 From: Iuri de Silvio Date: Sun, 27 Jul 2025 11:20:37 +0200 Subject: [PATCH 08/10] . --- roboflow/util/image_utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/roboflow/util/image_utils.py b/roboflow/util/image_utils.py index 287e9d27..b58ef1f6 100644 --- a/roboflow/util/image_utils.py +++ b/roboflow/util/image_utils.py @@ -4,13 +4,15 @@ import os import urllib + # Third-party imports +import pi_heif # type: ignore[import-untyped] import pillow_avif # type: ignore[import-untyped] import requests import yaml from PIL import Image -piheif.register_heif_opener(thumbnails=False) # Register for HEIF/HEIC +pi_heif.register_heif_opener(thumbnails=False) # Register for HEIF/HEIC pillow_avif = pillow_avif # Reference pillow_avif to not remove import by accident From 7d5f598629843f99eb6042e60e7fb8b9185761c6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 27 Jul 2025 09:20:46 +0000 Subject: [PATCH 09/10] =?UTF-8?q?fix(pre=5Fcommit):=20=F0=9F=8E=A8=20auto?= =?UTF-8?q?=20format=20pre-commit=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roboflow/util/image_utils.py | 1 - 1 file changed, 1 deletion(-) diff --git a/roboflow/util/image_utils.py b/roboflow/util/image_utils.py index b58ef1f6..2f3b2c1f 100644 --- a/roboflow/util/image_utils.py +++ b/roboflow/util/image_utils.py @@ -4,7 +4,6 @@ import os import urllib - # Third-party imports import pi_heif # type: ignore[import-untyped] import pillow_avif # type: ignore[import-untyped] From b1f0b9ad57e16f5441fb5ccfda21492912a6d810 Mon Sep 17 00:00:00 2001 From: Iuri de Silvio Date: Sun, 27 Jul 2025 11:28:52 +0200 Subject: [PATCH 10/10] version bump --- roboflow/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roboflow/__init__.py b/roboflow/__init__.py index 32d72a5e..8c90b3a1 100644 --- a/roboflow/__init__.py +++ b/roboflow/__init__.py @@ -15,7 +15,7 @@ from roboflow.models import CLIPModel, GazeModel # noqa: F401 from roboflow.util.general import write_line -__version__ = "1.2.1" +__version__ = "1.2.3" def check_key(api_key, model, notebook, num_retries=0):