Subcategory: Code complexity — 9 → 10
Context: Surfaced by the quality scorecard in #42. No C-or-worse blocks exist (avg complexity A, 2.97), but three B-grade hotspots and two low-A-band modules keep this off a perfect score.
Files / blocks to change:
src/nncg/inner.py:112 — _nystrom (CC 10, B)
src/nncg/solver.py:343 — ActiveSetSolver._run (CC 9, B)
src/nncg/inner.py:213 — Exact class / Exact.solve:247 (CC 7 / 6, B)
- Maintainability index:
src/nncg/solver.py 51.84, src/nncg/inner.py 53.84 (low end of A)
Done when: every block in uvx radon cc src -s ranks A (CC ≤ 5) and uvx radon mi src -s reports all modules ≥ 65 MI.
Evidence:
```
M 343:4 ActiveSetSolver._run - B (9)
F 112:0 _nystrom - B (10)
src/nncg/solver.py - A (51.84)
```
Ref: #42
Subcategory: Code complexity — 9 → 10
Context: Surfaced by the quality scorecard in #42. No C-or-worse blocks exist (avg complexity A, 2.97), but three B-grade hotspots and two low-A-band modules keep this off a perfect score.
Files / blocks to change:
src/nncg/inner.py:112—_nystrom(CC 10, B)src/nncg/solver.py:343—ActiveSetSolver._run(CC 9, B)src/nncg/inner.py:213—Exactclass /Exact.solve:247(CC 7 / 6, B)src/nncg/solver.py51.84,src/nncg/inner.py53.84 (low end of A)Done when: every block in
uvx radon cc src -sranks A (CC ≤ 5) anduvx radon mi src -sreports all modules ≥ 65 MI.Evidence:
```
M 343:4 ActiveSetSolver._run - B (9)
F 112:0 _nystrom - B (10)
src/nncg/solver.py - A (51.84)
```
Ref: #42