feat(oeb): parse cvc.oeb.report into structured CheckResult.report#109
Merged
feat(oeb): parse cvc.oeb.report into structured CheckResult.report#109
Conversation
….3.0)
Adds cf_precheck.checks._oeb_report with dual parsers for caravel/caravan and
openframe report layouts. Oeb.run() now locates the emitted report, parses it
with a design-type hint, and attaches a structured dict plus a one-line summary
to the CheckResult so the platform UI can render per-GPIO rows, ERR/WARN badges,
and messages without re-parsing. Runner picks up check.report / check.details
via getattr so other checks can opt into the same pattern later. Report is
always optional: parse failures surface as {parse_error: ...} and never change
the OEB check's pass/fail status.
Includes 15 unit tests covering caravel, caravan hint, openframe dm resolution,
no-issues path, CRLF tolerance, empty file, and missing-report fallback, plus
pytest config pointing at src/ so `pytest` runs out of the box.
Made-with: Cursor
… (1.3.1) The runner captures every WARNING+ log emitted during a check and uses the first one as the one-line FAIL summary when the check itself hasn't set `details`. "Missing LVS configuration variable EXTRACT_CREATE_SUBCUT" (and the eight sibling messages from config.start_be_check) fire on almost every project whose lvs_config.*.json omits the optional LVS optimisation keys, and they fire before run_oeb_check / run_be_checks starts — so they always win the first-captured-warning race and mask the real failure reason. Filter them out of `fallback_detail` (and the dim trailing hint line) via a small substring allow-list. Messages still go to the log at WARNING level so a curious user can still see them. Factored the classifier into _warning_filters.py so tests can import it without dragging in pya/KLayout through check_manager. Includes 3 unit tests covering the benign-match, real-error, and no-regex-in-substring-list invariants. Made-with: Cursor
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.
Summary
Structures the OEB check output so the chipIgnite platform can render a rich per-GPIO report instead of just a pass/fail string. Verified on dev.
1. Structured OEB report (1.3.0, `162ec1b`)
2. Benign LVS warning filter (1.3.1, `7d1df94`)
Test plan
Made with Cursor