v0.4.1
Install: pip install oxihipo==0.4.1
Fixed
-
for_each_columnfailed outright onLz4PerBankfiles. Its fallback
comment claimed to cover "Bytes / ByBank / chunked", but the fallback calls
decode_record_into, which expects a single whole-record payload. A by-bank
record is one LZ4 stream per bank plus a directory, so the call died with
lz4 decompress failed. Every other format worked, and the one existing test
only ever triedLz4PerColumnandLz4, so nothing caught it.There is now a by-bank branch that inflates just the requested bank's stream
and reads the column per event, mirroring the per-column opaque path — and a
test that sweeps a scalar and a jagged column on all six formats and
requires them to agree with per-event reads.Found from downstream: a CLI built on this crate could not run
statson
files its ownskimhad written, sinceLz4PerBankis a common default. -
PDG masses for light nuclei were the neutral atom, not the bare nucleus.
The table was generated fromparticle, which tabulates the atom for the
10LZZZAAAIcodes — the deuteron entry was 2.014101778 u exactly. A detector
sees a stripped ion, so every nuclear mass was heavy by Z·m_e: 0.511 MeV for
a deuteron or triton, 1.022 MeV for an alpha or He3. Small, systematic, and
wrong for the one thingpdg_massexists to do.All eight nuclear codes (Geant3 45/46/47/49 and their PDG spellings) are
corrected; nothing else moves, since a free proton has no bound electron. The
cross-check againstparticlenow subtracts Z·m_e for those codes — comparing
raw would have re-asserted the bug — and a second test pins the four values
against the literature independently of the library.
Changed
for_each_columndocuments that it ignores the chain filter. It walks the
record index directly, sowith_filterand the record-tag pushdown are both
skipped and the caller gets every value in the file. That is deliberate — the
per-column fast path has no per-event predicate to apply — but silently
returning a plausible number over the wrong event set is a trap, so the doc
now says so and points atread_columns, which is also columnar and does
honour the filter.