Repository navigation
Preserve mapping attribution and run NumPy correctness checks in CI - #45
Merged
Merged
Conversation
This was referenced Oct 27, 2026
endrebak
marked this pull request as ready for review
October 27, 2026 10:10
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.
Make transcript projection safe to call with original row order, expose the original annotation row for each fragment, and check public NumPy results on every PR. This follows the argument-order correction in #43.
Require ruranges-core 0.1.16 for numeric sorting and two-sided exon clipping.
map_to_global(..., return_exon_indices=True)adds an optional fifth output, while the default remains four arrays. This lets PyRanges1 reconstruct metadata and original fragment order without rediscovering exon matches or sorting numeric intervals in Python. Bump the Python package and Rust binding crate together to 0.2.9.Replace the symmetric strided-array mapping smoke test with unequal query/exon tables and explicit coordinate, strand, and query-attribution assertions. Cover shuffled query/exon inputs, original exon indices, both output-order modes, integer widths, and queries before or across exon boundaries. CI installs the built package and runs
tests/outside the source checkout on Python 3.12, 3.13 and 3.14; publishing also requires this correctness job.Validation:
maturin develop --release,cargo test --offline, andgit diff --checkpass. The changed Rust binding is rustfmt-clean. Repository-wide rustfmt/strict Clippy still report existing generated-signature formatting and crate-wide lint diagnostics; unrelated files are unchanged.Dependency: this draft requires ruranges-core#15 to be merged and ruranges-core 0.1.16 published before registry-based CI can build it. Local validation used an uncommitted Cargo path patch; no local paths or development checks outside the requested NumPy regression tests are included in the PR.