refactor: C-75 — retire GaulLookupEnricher; epic #85's pandas claim becomes literal - #221
Merged
Merged
Conversation
…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>
This was referenced Aug 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
_gatherduplicatedcontract/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_versionagreed withgaul_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_accessasserted"GaulLookupEnricher" not inthe 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:
frame_extraction.pydescribed itself as the sibling ofextraction.py— deleted in S3 — Collapse the two extraction seams into one #151 — and said "the pandas readers stay for the still-pandas path."gaul_lookup.pydescribed the enricher in the present tense.What it makes true
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
Register 83 / 14 open / 69 resolved.