PyTorch fixes TypeVar import error to avoid runtime crashes
A one-line import change prevents monkeypatched typing from breaking CachedMethod usage.
PyTorch’s latest commit addresses a subtle but breaking import-time issue. When a project uses a second vendored copy of `typing_extensions` that monkeypatches Python’s `typing` internals, the existing code that imports `TypeVar` directly from `typing` clashes with the `ParamSpec` import from `typing_extensions`. This caused a `TypeError` at import time, breaking any use of `CachedMethod[P, RV]` – a core pattern for caching typed functions in PyTorch.
The fix, submitted under PR #185708 by deepujain, resolves this by importing `TypeVar` from `typing_extensions` alongside `ParamSpec`, ensuring both type parameters use the same default-sentinel machinery. This tiny change prevents the `TypeError` while keeping the existing API convention intact. The test plan included running `python3 -m py_compile` on the affected file (`torch/_inductor/utils.py`) and executing a minimized reproducer in a Codex runtime environment that loads a second `typing_extensions` copy. Approved by two core maintainers (Skylion007 and jansel), the merge ensures stability for the 101k+ starred PyTorch repository.
- Fixes import-time `TypeError` when `TypeVar` and `ParamSpec` are used with multiple `typing_extensions` copies.
- Preserves the `CachedMethod[P, RV]` convention without changing the public API.
- Approved by PyTorch core maintainers Skylion007 and jansel; tested with `py_compile` and a minimal reproducer.
Why It Matters
Prevents cryptic import errors in complex Python environments, ensuring PyTorch’s typed caching works reliably for all users.