v0.11.0
·
486 commits
to main
since this release
Added
- Data structures: Introduce typed
FieldMetadataand decorator-based@stored_property/@stored_aliasmetadata forspine.dataobjects. - Testing: Add comprehensive
spine.data, HDF5 I/O, parser, and full-chain regression coverage, including deterministic full-chain reference checks. - Configuration: Allow config parsing without resolving
!downloaddirectives when desired.
Changed
- Data model: Refactor
spine.dataaround dataclass field metadata, clearer repr/equality behavior, and explicit stored-property serialization (#125) - LArCV data layout: Reorganize LArCV-backed classes under
spine.data.larcv. - Metadata classes: Prefer explicit
ImageMeta2D/ImageMeta3Dclasses while keepingMetaas a compatibility surface. - HDF5 schema: Normalize serialized object typing:
- scalar booleans are now stored as
boolinstead ofuint8 - many object-member index/ID arrays now store as
int32instead ofint64 - scalar numeric attributes now follow Python scalar typing
- scalar booleans are now stored as
- Units handling: Standardize spatial attributes around
units="instance"where values should followto_cm()/to_px()conversions. - Truth matching: Replace set-based overlap computation with a sorted-index intersection path for cleaner and more efficient overlap evaluation.
Fixed
- HDF5 writer: Restore serialization of stored-property values for output data objects.
- HDF5 reader: Read legacy HDF5 files produced by older releases, including:
- boolean fields stored as
uint8 - legacy
class_name="Meta"payloads, now reconstructed as explicit metadata classes
- boolean fields stored as
- Full-chain stability: Tighten deterministic regression checks to tolerate architecture-level floating point noise while still flagging meaningful drift.
- LArCV particle positions: Fix position-like attributes so they can be expressed consistently in both pixel and detector coordinates.
- Conditional imports: Reduce overhead and test fragility in optional-import code paths.
Full Changelog: v0.10.13...v0.11.0