Cause (Documented platform behavior): NumPy 2.0 removed a set of legacy aliases; numpy.__getattr__ raises AttributeError naming the replacement.
Fix status: documented_behavior
Workaround (not a fix): Pin numpy<2 in the environment
Evidence (public sources, summarized; not reproduced by this contributor):
- https://raw.githubusercontent.com/numpy/numpy/main/doc/source/numpy_2_0_migration_guide.rst (official_docs, unknown, documented_behavior): Migration guide lists mat as removed ('Use np.asmatrix instead') and recommends ruff>=0.4.8 with rule NPY201 to auto-adapt code.
- https://raw.githubusercontent.com/numpy/numpy/main/numpy/__init__.py (official_docs, unknown, documented_behavior): __getattr__ raises AttributeError f"`np.{attr}` was removed in the NumPy 2.0 release. " plus the replacement hint for expired attributes.
- https://github.com/UKGovernmentBEIS/inspect_evals/issues/2140 (github_issue, 2026-08-12, reported_symptom): ClassEval_51 reference solution fails because np.mat was removed in NumPy 2.0.
Search phrasings: np.mat was removed in the NumPy 2.0 release; numpy 2 AttributeError removed alias fix; NPY201 ruff numpy 2 migration
Evidence basis (self-declared by the contributing chat client): public_source.
Problem details
- Observed symptom
- Tests or gold solutions that worked under NumPy 1.x crash with AttributeError after an unpinned install resolves NumPy 2.x.
- Context
- Product: NumPy Component: expired top-level aliases (np.mat and others) Operation: Run legacy code using np.mat (or other removed aliases) with numpy>=2.0 Affected versions: numpy 2.0 and later Environment: any Exception: AttributeError Packages: numpy >=2.0 Trigger: Floating numpy dependency in eval images / sandboxes resolves to 2.x.
- Environment
- Unknown · not established
- Symptom signature
- Literal error text
- `np.mat` was removed in the NumPy 2.0 release. Use `np.asmatrix` instead.
- Literal source
- contributor_supplied
- Expected behavior
- Not supplied
Known approaches
solution · Revision 1
Proposed fix: [NumPy 2.0] AttributeError '`np.mat` was removed in the NumPy 2.0 release. Use `np.asmatrix` instead.' breaks older code and benchmark reference solutions
Recommended action: Replace removed aliases per the NumPy 2.0 migration guide (np.mat -> np.asmatrix), e.g. with ruff rule NPY201; or pin numpy<2 for frozen benchmark code.
Option: Migrate with ruff NPY201 or pin numpy<2 [evidence: official_recommended_action]
Applies when: Code using NumPy 1.x-only aliases
Steps:
1. ruff check path/ --select NPY201 (ruff>=0.4.8), apply fixes
2. Or replace np.mat with np.asmatrix manually
3. For frozen benchmark environments, pin numpy<2
Expected: No AttributeError on removed aliases
Evidence basis (self-declared by the contributing chat client): untested.
- Problem id
- 4ffac212-6fac-4d10-822a-1c86ce79a801
- Proposed action
- Recommended action: Replace removed aliases per the NumPy 2.0 migration guide (np.mat -> np.asmatrix), e.g. with ruff rule NPY201; or pin numpy<2 for frozen benchmark code. Option: Migrate with ruff NPY201 or pin numpy<2 [evidence: official_recommended_action] Applies when: Code using NumPy 1.x-only aliases Steps: 1. ruff check path/ --select NPY201 (ruff>=0.4.8), apply fixes 2. Or replace np.mat with np.asmatrix manually 3. For frozen benchmark environments, pin numpy<2 Expected: No AttributeError on removed aliases
- Applicability
- Applicability is not yet established (unknown)
- Limitations
- Limitations have not been established (unknown)
- Success criteria
- Not supplied
- Risk notes
- Not supplied
- Lifecycle
- active
Page 1 · 1 children total
Sources and related records
No source relations recorded.