Skip to content

feat: add support for reading linked RNTuple attribute sets - #1725

Open
aashirvad08 wants to merge 2 commits into
scikit-hep:mainfrom
aashirvad08:aashirvad08/feat-rntuple-attributes
Open

aashirvad08 wants to merge 2 commits into
scikit-hep:mainfrom
aashirvad08:aashirvad08/feat-rntuple-attributes

Conversation

@aashirvad08

@aashirvad08 aashirvad08 commented Sep 21, 2026

Copy link
Copy Markdown

This PR adds support for reading linked attribute sets from RNTuples

RNTuple v1.0.1.0 introduced attribute sets as separate linked RNTuples. Uproot was already reading the corresponding footer records but it was not following the locators to actually load the attribute data

And PR exposes them through RNTuple.attributes and adds RNTupleAttributeSet for accessing the user data, ranges and entry-based lookups

It also handles linked RNTuple cache isolation and lazy loading so unsupported attribute schemas only fail when that particular attribute set is accessed

limitation: test_ROOT has not been run because it requires ROOT 6.40 which introduced CreateAttributeSet

closes - #1721

@github-actions github-actions Bot added the type/feat PR title type: feat (set automatically) label Sep 21, 2026
@codecov

codecov Bot commented Sep 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.80952% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 75.56%. Comparing base (694b678) to head (86184fc).

Files with missing lines Patch % Lines
src/uproot/models/RNTuple.py 98.64% 1 Missing ⚠️
Additional details and impacted files
Files with missing lines Coverage Δ
src/uproot/behaviors/RNTuple.py 77.36% <100.00%> (+2.59%) ⬆️
src/uproot/const.py 100.00% <100.00%> (ø)
src/uproot/models/RNTuple.py 91.46% <98.64%> (+0.93%) ⬆️

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type/feat PR title type: feat (set automatically)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant