Match ComfyUI's dependency floors (#604) and fix the stalled store test race (#603) (#606)

* chore(deps): match ComfyUI's Pillow, aiohttp and numpy floors (#604)

PromptManager never fights ComfyUI on versions: the floors follow its
requirements.txt and Dependabot no longer raises them. The full suite passes on
Pillow 10.1.0 and aiohttp 3.11.8; numpy was tested at 1.26.4, the first with
Python 3.12 wheels. A test that left response bodies unread hung the aiohttp
client before 3.11.11, so it reads them now.

* test(thumbnails): the stalled store call test runs without the probe (#603)

note_failure() wakes the probe, which finds the healthy test folder again at
once, so the next lookup could do store I/O and the test failed intermittently.
This commit is contained in:
Vito
2026-11-01 16:38:29 +00:00
committed by GitHub
parent 043403d09e
commit fa98d0644d
6 changed files with 16 additions and 6 deletions
+5
View File
@@ -17,6 +17,11 @@ updates:
prefix: "deps(pip)"
include: "scope"
rebase-strategy: "auto"
# These floors follow ComfyUI's requirements.txt, never the newest release.
ignore:
- dependency-name: "Pillow"
- dependency-name: "aiohttp"
- dependency-name: "numpy"
# Optional: group non-breaking updates to reduce PR noise
groups:
python-minor-and-patch:
+1 -1
View File
@@ -4,7 +4,7 @@ description = "A powerful ComfyUI custom node that extends the standard text enc
version = "3.4.1"
license = {file = "LICENSE"}
requires-python = ">=3.12"
dependencies = ["watchdog>=2.1.0", "Pillow>=8.0.0"]
dependencies = ["watchdog>=2.1.0", "Pillow>=10.1.0"]
[build-system]
requires = ["setuptools>=84.2.1"]
+4 -4
View File
@@ -1,11 +1,11 @@
# Runtime dependencies
# Runtime dependencies (Pillow, aiohttp and numpy floors match ComfyUI requirements.txt)
watchdog>=6.0.0
Pillow>=12.3.0
aiohttp>=3.14.5
Pillow>=10.1.0
aiohttp>=3.11.8
# Tests and coverage
coverage>=7.16.2
numpy>=2.2.6 # WD14 engine tests
numpy>=1.25.0 # WD14 engine tests
# Code quality
black==26.10.1
+1 -1
View File
@@ -1,4 +1,4 @@
# Runtime dependencies for PromptManager.
# aiohttp, numpy and torch come from ComfyUI itself and are not listed here.
watchdog>=2.1.0 # Output directory monitoring
Pillow>=8.0.0 # Image metadata extraction and thumbnails
Pillow>=10.1.0 # Image metadata extraction and thumbnails
+2
View File
@@ -796,6 +796,7 @@ class TestRevalidatedCachingBehindMiddlewares(CoreRoutesTestCase):
self.assertEqual(resp.status, 200, path)
self.assertEqual(resp.headers.get("Content-Encoding"), "gzip", path)
self.assertEqual(resp.headers["Cache-Control"], "no-cache", path)
await resp.read() # aiohttp before 3.11.11 hangs on an unread body
again = await self.client.request(
"GET",
path,
@@ -806,6 +807,7 @@ class TestRevalidatedCachingBehindMiddlewares(CoreRoutesTestCase):
)
self.assertEqual(again.status, 304, path)
self.assertEqual(again.headers["Cache-Control"], "no-cache", path)
await again.read()
# ── instance helpers ──────────────────────────────────────────────────
+3
View File
@@ -287,6 +287,9 @@ class TestUnavailableFolder(FolderModeCase):
self.assertTrue(stray.exists())
async def test_a_stalled_store_call_marks_it_unreachable_and_stops_io(self):
# Without the probe: woken by the stall, it finds this healthy folder again
# at once, and the lookup below would rightly do store I/O.
self.assertTrue(preview_store.stop_probe())
make_png(self.output_dir / "m.png", size=(64, 64))
self.preview("m.png").write_bytes(b"x")
ticks = iter([0.0, preview_store.IO_BUDGET + 1.0])