From c2a3db7b92d1bffb6aeacd2203d5de174e66de05 Mon Sep 17 00:00:00 2001 From: Andrew Bond Date: Mon, 29 Jun 2026 07:58:29 -0700 Subject: [PATCH] fix(types): make batch-probe ty-clean; flip ty CI to blocking 4 ty diagnostics resolved: python-platform=linux config (CI=ubuntu, deploy=Linux -> os.sched_setaffinity resolves) + 3 justified ignores on optional GPU backends (cupy/jax, guarded by try/except ImportError). ty check src = 0 with torch present. The CI test job installs torch, so ty now runs BLOCKING (continue-on-error removed). Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 3 +-- pyproject.toml | 4 +++- src/batch_probe/_probe_generic.py | 8 ++++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3c826a6..4957a86 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,9 +30,8 @@ jobs: - name: Lint with ruff run: ruff check src/ tests/ - - name: Type check (ty — advisory) + - name: Type check (ty) if: matrix.python-version == '3.12' - continue-on-error: true run: | pip install ty==0.0.55 ty check src diff --git a/pyproject.toml b/pyproject.toml index 29e49c6..0f2f859 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,4 +51,6 @@ testpaths = ["tests"] [tool.ruff] line-length = 100 -target-version = "py39" \ No newline at end of file +target-version = "py39" +[tool.ty.environment] +python-platform = "linux" diff --git a/src/batch_probe/_probe_generic.py b/src/batch_probe/_probe_generic.py index 3e27615..9b33d25 100644 --- a/src/batch_probe/_probe_generic.py +++ b/src/batch_probe/_probe_generic.py @@ -28,7 +28,7 @@ def _gpu_cleanup_generic(backend: str = "auto") -> None: if backend in ("auto", "cupy"): try: - import cupy as cp + import cupy as cp # ty: ignore[unresolved-import] # optional GPU backend pool = cp.get_default_memory_pool() pool.free_all_blocks() @@ -40,7 +40,7 @@ def _gpu_cleanup_generic(backend: str = "auto") -> None: if backend in ("auto", "jax"): try: - import jax + import jax # ty: ignore[unresolved-import] # optional GPU backend jax.clear_caches() except (ImportError, AttributeError): @@ -83,7 +83,7 @@ def probe( Example — CuPy:: - import cupy as cp + import cupy as cp # ty: ignore[unresolved-import] # optional GPU backend from batch_probe import probe def my_work(n): @@ -114,7 +114,7 @@ def my_work(n): except (ImportError, AttributeError): pass try: - import cupy as cp + import cupy as cp # ty: ignore[unresolved-import] # optional GPU backend oom_exceptions.append(cp.cuda.memory.OutOfMemoryError) except (ImportError, AttributeError):