From eecb36c4cac156cd8ec02678be63fe93b17a4bca Mon Sep 17 00:00:00 2001 From: proboscis Date: Fri, 10 Jul 2026 23:00:34 +0900 Subject: [PATCH] Defer annotations that subscript non-generic VM classes so Python 3.12/3.13 can collect and run the suite doeff_vm pyclasses (DoExpr/Program, Ok) are not runtime-generic; before Python 3.14's lazy annotations, Program[int] / Ok[...] in module-level dataclass fields, module-level function signatures, and test-local def signatures raise TypeError at import or at test execution. These three files were the only runtime-reachable instances: with them fixed (plus doeff-time's time_queue.py on the fix-time-contract branch) the full root testpaths run passes on 3.12 and 3.13 locally. Co-Authored-By: Claude Fable 5 --- packages/doeff-gemini/src/doeff_gemini/types.py | 2 ++ packages/doeff-vm/tests/test_traceback_pure_python_frames.py | 3 +++ tests/effects/test_pure_effect.py | 2 ++ 3 files changed, 7 insertions(+) diff --git a/packages/doeff-gemini/src/doeff_gemini/types.py b/packages/doeff-gemini/src/doeff_gemini/types.py index f9d99fdf..1fc61720 100644 --- a/packages/doeff-gemini/src/doeff_gemini/types.py +++ b/packages/doeff-gemini/src/doeff_gemini/types.py @@ -1,5 +1,7 @@ """Shared type definitions for the Gemini integration.""" +from __future__ import annotations + from dataclasses import dataclass from datetime import datetime diff --git a/packages/doeff-vm/tests/test_traceback_pure_python_frames.py b/packages/doeff-vm/tests/test_traceback_pure_python_frames.py index 8831c996..adcc4abc 100644 --- a/packages/doeff-vm/tests/test_traceback_pure_python_frames.py +++ b/packages/doeff-vm/tests/test_traceback_pure_python_frames.py @@ -28,6 +28,9 @@ The cllm_compute.py:184 frame is completely lost. """ +from __future__ import annotations + + import pytest from doeff_vm import WithHandler diff --git a/tests/effects/test_pure_effect.py b/tests/effects/test_pure_effect.py index f25abbce..2abe4d28 100644 --- a/tests/effects/test_pure_effect.py +++ b/tests/effects/test_pure_effect.py @@ -1,5 +1,7 @@ """Tests for Pure - the immediate value effect (Pure case of Free monad).""" +from __future__ import annotations + import pytest from doeff_vm import Pure