Skip to content

Rename the CLI's WorkflowResults to RunSummary - #171

Merged
isayev merged 1 commit into
mainfrom
refactor/rename-run-summary
Aug 18, 2026
Merged

isayev merged 1 commit into
mainfrom
refactor/rename-run-summary

Conversation

@isayev

@isayev isayev commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

The collision

name module what it is
WorkflowResult Auto3D/results.py main()'s return value — a str subclass that is the output SDF path
WorkflowResults Auto3D/cli/results.py the CLI's display payload — counts, elapsed time, failure list

One trailing s apart, in two modules both named results.py, and not related types — nothing converts between them. Importing either into a file that held the other read as a typo in both directions.

RunSummary names what it is rather than where it came from. Auto3D.results.WorkflowResult — the one the Python API returns — is untouched.

The guard is a rule, not a forbidden name

test_no_class_name_differs_from_another_only_by_a_trailing_s rejects any such pair anywhere in src/, because the defect is the near-collision rather than this particular instance. Same treatment test_only_one_class_in_the_package_is_named_tautomer_engine already gives the TautomerEngine collision sitting beside it.

Mutation-tested by introducing an unrelated pair (FailedMolecule / FailedMolecules), which it catches and names — so it is checking the property, not remembering an answer.

One mechanical detail worth flagging

The rename used a word-boundary pattern, which matters more than usual here: WorkflowResults contains WorkflowResult as a prefix, so an unanchored replace of the shorter name would have silently corrupted every site of the longer one. Only the longer name changed, and there are zero residual references to the old name in src/ or tests/.

Compatibility

Still an importable public name, so it gets a CHANGELOG table like the isomer_engine split, and no shim. It appears nowhere under docs/source, so no documentation changes.

Verification

  • 1770 passed, 1 skipped, 74 deselected (+1 new guard), randomized order.
  • mypy: 68 errors in 22 files, 75 checked — unchanged.

Context

First piece of wave 9. The remaining two are the layer-layout regroup and splitting ASE/thermo.py (1895 lines — now the largest file in the tree).

`Auto3D.cli.results.WorkflowResults` was one trailing `s` away from
`Auto3D.results.WorkflowResult`, which is a different kind of thing
entirely -- `main()`'s return value, a `str` subclass that *is* the output
SDF path -- living in a module also called `results.py`. Nothing converted
between them; they were never related types. Importing either into a file
that held the other read as a typo in both directions.

`RunSummary` names what it is: the counts, timing and failure list the CLI
prints after a run. The API's `WorkflowResult` is untouched.

The guard is a rule rather than a forbidden name. `test_no_class_name_
differs_from_another_only_by_a_trailing_s` rejects *any* such pair anywhere
in `src/`, because the defect is the near-collision, not this particular
one -- the same treatment
`test_only_one_class_in_the_package_is_named_tautomer_engine` already gives
the `TautomerEngine` collision beside it. Mutation-tested by introducing an
unrelated pair (`FailedMolecule`/`FailedMolecules`), which it catches and
names.

The rename used a word-boundary pattern, which matters here more than
usual: `WorkflowResults` contains `WorkflowResult` as a prefix, so an
unanchored replace of the shorter name would have corrupted every site of
the longer one. Only the longer name changed.

Not a documentation change: the name appears nowhere under `docs/source`.
It is still an importable public name, so it gets a CHANGELOG table like
the `isomer_engine` split, and no shim.

Verification:
- 1770 passed, 1 skipped, 74 deselected (+1 new guard), randomized order.
- mypy: 68 errors in 22 files, 75 checked -- unchanged.
- Zero residual references to the old name in `src/` or `tests/`.
@isayev
isayev merged commit a708cda into main Aug 18, 2026
8 checks passed
@isayev
isayev deleted the refactor/rename-run-summary branch August 18, 2026 21:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant