Skip to content

refactor: C-75 — retire GaulLookupEnricher; epic #85's pandas claim becomes literal - #221

Merged
Polichinel merged 1 commit into
developmentfrom
refactor/c75-retire-gaul-lookup-enricher
Aug 4, 2026
Merged

refactor: C-75 — retire GaulLookupEnricher; epic #85's pandas claim becomes literal#221
Polichinel merged 1 commit into
developmentfrom
refactor/c75-retire-gaul-lookup-enricher

Conversation

@Polichinel

Copy link
Copy Markdown
Collaborator

B3b. #90 recorded the decision its Owner field demanded; this executes it. Closes epic #85 and tracking #93.

What went

views_postprocessing/contract/enrichment.py (317 lines), tests/test_enrichment.py (39 tests), docs/CICs/GaulLookupEnricher.md.

Zero production callers. Its "build/verification path" justification was spent the moment #90 made that path arrow-native without touching it. Its _gather duplicated contract/historical.py's shipping gather, which four test files cover independently. C-45 is the precedent and was resolved the same way.

No coverage of shipping code was lost

The two tests elsewhere that imported the class both asserted only that its lookup_version agreed with gaul_lookup.version() — two readers of one fact, checked against each other. They now read the fact through the declared reader the delivery itself uses, which is the half that was ever load-bearing.

One guard was deleted rather than kept. test_gaul_lookup_access asserted "GaulLookupEnricher" not in the manager source. With the class gone that assertion cannot fail, and a test that cannot fail is decoration (ADR-014 §2). What it protected — one lookup read per delivery — is the first assertion in the same function and still bites.

Fifteen files, and the sweep is the point

The module, its tests, its CIC, the CIC index, two importing test files, the machinery list, the pandas-importer assertion, README.md's dependency table and package tree, role_and_seams.md's tree and contract list, ADR-012's ontology row and its pandas claim, and three module docstrings.

Every one was a live claim about a class that no longer exists — and none of the ADR or CIC references would have been caught by any guard. That is C-80's entire argument, demonstrated rather than asserted.

Two stale claims fixed while in the neighbourhood, both actively false rather than merely dated:

What it makes true

$ grep -rn "^import pandas\|^from pandas" views_postprocessing/ scripts/
$

Nothing. Not a runtime import, not a type-only one. Epic #85's claim — pandas pushed to the seams — is literal now rather than nearly-true, which is why it closes here and not at #90. test_doc_accuracy's assertion changed from "exactly one type-only importer" to "none".

Verification

333 passed / 40 xfailed / 0 failed    (-40: the enricher's 39, plus one retargeted)
ruff check .  ->  All checks passed!

Register 83 / 14 open / 69 resolved.

…ecomes literal

The decision was recorded in #90 as its Owner field required. This executes it.

What went
- views_postprocessing/contract/enrichment.py (317 lines)
- tests/test_enrichment.py (39 tests)
- docs/CICs/GaulLookupEnricher.md

Why: zero production callers, its "build/verification path" justification spent once
#90 made that path arrow-native, and its _gather duplicated contract/historical.py's
shipping gather -- which four test files cover independently. C-45 is the precedent and
was resolved the same way.

No coverage of shipping code was lost
The two tests elsewhere that imported the class both asserted only that its
lookup_version agreed with gaul_lookup.version() -- two readers of one fact, checked
against each other. They now read it through the declared reader the delivery uses,
which is the half that was ever load-bearing.

One guard deleted rather than kept: test_gaul_lookup_access asserted
"GaulLookupEnricher" not in the manager source. With the class gone that cannot fail,
and a test that cannot fail is decoration (ADR-014 s2). What it protected -- one lookup
read per delivery -- is the first assertion in the same function and still bites.

Fifteen files, and the sweep is the point
The module, its tests, its CIC, the CIC index, two importing test files, the machinery
list, the pandas-importer assertion, README's dependency table and package tree,
role_and_seams' tree and contract list, ADR-012's ontology row and pandas claim, and
three module docstrings. Every one was a live claim about a class that no longer exists,
and NONE of the ADR or CIC references would have been caught by any guard -- which is
C-80's whole argument.

Two stale claims fixed while in the neighbourhood, both actively false rather than
merely dated: frame_extraction.py described itself as the sibling of extraction.py (a
module deleted in #151) and said "the pandas readers stay for the still-pandas path";
gaul_lookup.py described the enricher in the present tense.

What it makes true
`grep -rn "^import pandas\|^from pandas" views_postprocessing/ scripts/` returns nothing
-- not a runtime import, not a type-only one. Epic #85's claim is literal now rather
than nearly-true, and test_doc_accuracy's assertion changed from "exactly one type-only
importer" to "none".

333 passed / 40 xfailed / 0 failed (-40: the enricher's 39, plus one retargeted).
ruff clean. Register 83/14/69.

Closes #85. Closes #93.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Polichinel
Polichinel merged commit 8459c80 into development Aug 4, 2026
4 checks passed
@Polichinel
Polichinel deleted the refactor/c75-retire-gaul-lookup-enricher branch August 4, 2026 11:48
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