Repository navigation
Conversation
LegendHDF5IO 0.2 registers custom datatypes through register_datatype!, which makes the datatype_to_string and _array_type overrides of the extension redundant. Assisted-By: generative AI
LegendHDF5IO 0.2 reads tables as LH5LazyTables, which are not arrays, so they fell through to the identity fallback and read_ldata returned them unmaterialized. Assisted-By: generative AI
Loading rows of a lazily read table went through its StructArray conversion, whose slices keep the disk-backed row type, so rows of tables with waveform columns could not be used. Index the lazy table, which derives the row type from what it reads, and pass masks to the read as LH5Array supports them now. Assisted-By: generative AI
LegendHDF5IO 0.2 no longer converts a lazy table to a StructArray, and the table's element type is the abstract NamedTuple. Rows count as scalars when every column holds a bits type. Assisted-By: generative AI
LegendHDF5IO 0.2 has an abstract supertype for its lazy tables, which also covers tables concatenated or joined without reading them. Assisted-By: generative AI
Rows selected by index were read range by range here, bridging gaps between rows of scalars, because LegendHDF5IO 0.1 read index vectors element by element. LegendHDF5IO 0.2 chooses between a bounding read, a single selection and one read per run of rows by itself, so the rows are now read by indexing the table or column directly. Assisted-By: generative AI
Assisted-By: generative AI
Assisted-By: generative AI
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #247 +/- ##
==========================================
- Coverage 63.75% 63.55% -0.21%
==========================================
Files 27 27
Lines 2842 2818 -24
==========================================
- Hits 1812 1791 -21
+ Misses 1030 1027 -3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
1 task done
oschulz
marked this pull request as ready for review
November 12, 2026 10:43
oschulz
marked this pull request as draft
November 12, 2026 10:44
Assisted-By: generative AI
oschulz
requested review from
theHenks
and
a balanced review from Copilot
and removed request for
Copilot
November 12, 2026 11:40
Contributor
Author
|
@theHenks can you test if this work in full production? |
Copilot stopped reviewing on behalf of
oschulz due to an error
November 12, 2026 11:41
oschulz
marked this pull request as ready for review
November 13, 2026 11:19
This branch has not been deployed
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.
Written by Claude (Anthropic) in Claude Code, a Fable 5.1 session at xhigh effort, under the guidance of @oschulz, who asked for this draft. Updated for release as 0.6.27 by an Opus 5.5 session at xhigh effort. Opened as a draft until LegendHDF5IO 0.2.0 is in the LEGEND registry.
Port to LegendHDF5IO 0.2, whose tables are lazy
LH5LazyTables instead of TypedTables tables: reading a table opens a column only when it is used, rows are read in blocks or by index, andvcatandinnermergeof lazy tables stay lazy. The extension andread_ldataare adapted so that the public behavior stays the same, apart from two result types noted below, andtier_data[tier, filekeys]gains a method for several file keys._load_all_keys, and read rows of lazy tables through the table itself rather than throughTable(tbl), which 0.2 refuses.tier_data[tier, filekeys::AbstractVector{<:FileKey}]returns the paths of several file keys.load_partition_chreads partition rows through the lazy table instead of aTableof it.Rebased onto main after #246. Verified: the test suite passes against LegendHDF5IO 0.2.0 (one pre-existing broken test), and the LegendHDF5IO suite's LegendDataManagement check passes against this branch. In 14 reads of LegendTestData files, covering the dsp, hit, pls, raw and evt tiers,
read_ldatareturns the same types as main with LegendHDF5IO 0.1.19, except for two that come from LegendHDF5IO 0.2: Bool columns areVector{Bool}instead ofBitVector, and the tables nested in an event tier, such asgeds, areStructArrays instead ofTables.