With AlmTester now the single contributor-facing API, the generator at
``scripts/gen_lin_api.py`` and its output at
``tests/hardware/_generated/`` have no live consumer — the previous
commit inlined the enum classes they used to provide into
``tests/hardware/alm_helpers.py``.
Moves both to ``deprecated/`` rather than deleting outright. The
deprecated layout is self-describing:
deprecated/
README.md — retirement rationale + revival instructions
gen_lin_api.py — was scripts/gen_lin_api.py
_generated/
__init__.py
lin_api.py — last-emitted typed frame classes + IntEnums
A note in deprecated/README.md spells out the conditions that would
make reviving the generator worthwhile (a second ECU joins, the LDF
churns fast enough to make hand-syncing miss changes, mypy-in-CI gets
adopted) and the exact command to regenerate.
Docs:
- 22_generated_lin_api.md now leads with a retired-layer banner. The
body is preserved as the design-of-record for the historical layer.
- 05_architecture_overview.md gets a refreshed "Test-side layering"
Mermaid (AlmTester → FrameIO → LinInterface) plus a "retired layer"
bullet pointing at deprecated/. The "Three independent entry points"
section is annotated rather than removed — the gen_lin_api path
there is now historical reference.
Verified: pytest --collect-only collects 87 tests; 40 unit + mock
tests still pass. The retirement is invisible to the live framework.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
37 lines
1.5 KiB
Markdown
37 lines
1.5 KiB
Markdown
# Deprecated
|
|
|
|
Historical artifacts kept for reference. Nothing in this directory is
|
|
imported by the live framework or test suite.
|
|
|
|
## Contents
|
|
|
|
| Path | Was | Why retired |
|
|
|---|---|---|
|
|
| `gen_lin_api.py` | `scripts/gen_lin_api.py` — LDF → Python generator | Replaced by hand-maintained `AlmTester` in `tests/hardware/alm_helpers.py`. The generated layer had one consumer (`AlmTester`) and adding signals to the generator was less ergonomic than adding methods to the facade. |
|
|
| `_generated/lin_api.py` | `tests/hardware/_generated/lin_api.py` — auto-emitted typed frame classes + enum classes | Same — its enum classes were inlined into `alm_helpers.py` so test bodies need only one import. |
|
|
|
|
## If you want to bring this back
|
|
|
|
The design is documented in
|
|
[`../docs/22_generated_lin_api.md`](../docs/22_generated_lin_api.md).
|
|
Reasons it might be worth reviving:
|
|
|
|
- A second ECU joins the framework and adding `<ecu>_helpers.py`
|
|
facades by hand becomes painful.
|
|
- The LDF starts churning fast enough that hand-syncing
|
|
`alm_helpers.py` enums against it is missing changes.
|
|
- The team grows to where mypy-in-CI becomes worth it and the
|
|
generated dataclass shape (with typed signal attributes) starts
|
|
paying for itself.
|
|
|
|
The generator is self-contained and parses a single LDF — re-runnable
|
|
in place from this directory:
|
|
|
|
```
|
|
python deprecated/gen_lin_api.py vendor/4SEVEN_color_lib_test.ldf \
|
|
--out tests/hardware/_generated/lin_api.py
|
|
```
|
|
|
|
(Restoring also requires adding `tests/hardware/_generated/__init__.py`
|
|
back, which is currently inside this folder.)
|