feat: config-driven rig.source_files and indented RIG YAML output - #121
Merged
Conversation
RIG target_info.edge_type_info source_files now come from an optional rig.source_files graph-config key (applied to every edge type) instead of being scraped from edge source_record_urls; edges still emit source_record_urls unchanged. Generated .RIG.yaml files are written with block sequences indented under their parent key, unicode allowed, and a 120-column wrap so long prose fields stay readable.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
SkyeAv
added a commit
that referenced
this pull request
Aug 25, 2026
Cut 16.0.0 and bump the package version in pyproject.toml, uv.lock, and CITATION.cff. Major: edge ids are canonicalized before hashing (nested object keys sorted at every depth; false hashed instead of dropped), so every existing edge id changes once — readers pinning ids must re-key against the rebuilt graph. The same PR adds opt-in uuid_fields so a graph config declares which edge fields constitute identity (930,081 of 1,265,355 ids moved under the whole-record hash on a re-analysis, none under a declared list), derives the UUID namespace from the graph infores with a uuid_domain override, aborts the build on duplicate derived ids instead of shipping them, adds a duplicate-edge-ids QC assertion, and cuts dedup memory 25x (2469 MB -> 100 MB peak, 477s -> 37s on MultiomicsKG 3.0.0) (#122). Also adds config-driven rig.source_files with indented RIG YAML output (#121). Changelog: - The 16.0.0 section shipped with #122; added the missing Added entry covering rig.source_files and the RIG YAML formatting from #121. Docs: none needed here; both PRs shipped with their own docs. Testing: - uv run pytest -q -> 1107 passed, 15 skipped (94% coverage) - uv run ruff check . && uv run ruff format --check . && uv run pyright -> clean / 0 errors - uv lock --check -> up to date - uv run mkdocs build --strict -> clean
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.
What
.RIG.yamlfiles now indent block sequences under their parent key (PyYAML's default indentless style made nestededge_type_infoentries hard to scan), allow unicode, and wrap at 120 columns so long prose fields likeui_explanationstay intact. Scoped toto_yaml, which only the RIG writer uses.source_files: new optionalrig.source_fileskey (flat list of upstream source file names/URLs) in the graph config. When set, it is applied sorted/deduplicated to everytarget_info.edge_type_infoentry'ssource_files.Why
source_fileswas previously scraped from edgesource_record_urls; it is now an authored config fact and never derived from edge provenance. Edges themselves still emitsource_record_urlsunchanged.Changes
src/tablassert/models.py:RIGConfig.source_filesfield.src/tablassert/rig.py: dropped thesource_record_urlsscraping inrig_edge_type_info;compile_rigappliesrig.source_filesto every edge type.src/tablassert/ingests.py:_IndentedSafeDumperused byto_yaml.test_rig.py,test_lib.py) plus new coverage for config-appliedsource_filesand indented output;docs/configuration/graph.mddocuments the new key.Verification
numpyand the[qc]extra.)