WUT_Computer_Science/Programming
Krzysztof kuhy Rudnicki faef20dc45 PORR: zero findings, 18 tests still passing after every refactor
598 findings to none, and the suite ran through `./run.sh run` after each step
rather than at the end -- 18 passed, 27s, every time.

The shape of this one was different from the other courses. PORR is four
implementations of the same linear algebra (sequential, threads, processes,
dask), so nearly every finding came in groups of four:

- 229 missing annotations. Rather than `object`, which mypy strict rejects on
  every attribute access, each module declares what these actually are:
  `Matrix = np.ndarray | list[list[float]]` and the vector equivalent. The
  backends really are called with both -- comparing them is the point of the
  course.
- 76 names: `A` -> matrix, `Ab` -> augmented, `Ax` -> product, `I` ->
  identity, `dA` -> dask_matrix, and the two CamelCase functions. Renamed
  through `tokenize`, not regex, so no string or comment was touched.
- 121 missing docstrings, one per method name since the names repeat across
  all four backends.
- Seven functions over the argument limit, all taking the same seven or nine
  loose values. They are two frozen dataclasses now, in a new
  richardson_problem.py: `Problem(matrix, rhs, lambda_min, lambda_max)` and
  `Settings(max_iterations, x0, tol)`. `RichardsonMethod.__init__` also took a
  `size` argument it never read.
- threads_indep_old's iteration did "split into chunks, submit, wait" four
  times by hand (C901 11, PLR0915 54). One `_run_chunked` helper.
- tests.py's two bare asserts became explicit raises, per the no-ignores rule.
  `assert False` was also B011: `python -O` deletes it, so the non-convergence
  branch would have silently passed under optimisation.

Real fixes rather than style: np.random -> Generator, `os.path.exists` ->
Path, an `except Exception` around dask narrowed to the errors it actually
raises, and two runnable modules that logged at INFO without ever calling
basicConfig -- caught by scripts/check_refactor_safety.py, which is now doing
the job it was written for.

Repo-wide: 1,781 findings -> 1,183, all of them in the five courses left.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0172dj34FDpao6wsix8ZuCzE
2026-08-28 21:01:13 +02:00
..
AIS Split 19 over-cap LaTeX reports, proving each PDF is unchanged 2026-08-28 19:47:12 +02:00
BD2 Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
BSS Run all 33 safe courses; fix what that broke 2026-08-28 18:52:31 +02:00
E-PSYOPS Run all 33 safe courses; fix what that broke 2026-08-28 18:52:31 +02:00
EADS Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
EARIN PORR runs in 28s, and three checks so the next pass cannot repeat my mistakes 2026-08-28 20:50:46 +02:00
ECOAR Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
ECOTE ECOTE and ECRYPT_PROJECT: zero findings, tests still green 2026-08-28 20:03:01 +02:00
ECRYPT Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
ECRYPT_PROJECT ECOTE and ECRYPT_PROJECT: zero findings, tests still green 2026-08-28 20:03:01 +02:00
EGUI Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
EOOP Run all 33 safe courses; fix what that broke 2026-08-28 18:52:31 +02:00
EOPSY Split 19 over-cap LaTeX reports, proving each PDF is unchanged 2026-08-28 19:47:12 +02:00
EPFU Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
ERSMS-project Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
NLP PORR: zero findings, 18 tests still passing after every refactor 2026-08-28 21:01:13 +02:00
PBAD Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
PORR PORR: zero findings, 18 tests still passing after every refactor 2026-08-28 21:01:13 +02:00
PSD Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
psd_project Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
TRAK Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
twm_4 Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
USD Add a run.sh to every course, and fix the code that would not build 2026-08-28 18:37:55 +02:00
WDWR Hold the coursework to the same lint bar as the tooling 2026-08-28 19:53:04 +02:00
ZPOB Make ZPOB build: its essay was handed in without a bibliography 2026-08-28 19:18:11 +02:00