Skip to content

Latest commit

 

History

History
7 lines (6 loc) · 1.07 KB

4435.bugfix.md

File metadata and controls

7 lines (6 loc) · 1.07 KB

Fix byte-order bugs found by running the test suite on a big-endian (s390x) host.

  • Zarr V3 data type metadata has no byte order, so V3 data types without an explicit endianness (such as Float64(), or a data type parsed from "float64") now use the host byte order instead of always little-endian. On big-endian hosts, arrays opened from V3 metadata now return native arrays, and dtype="float64" and dtype=np.float64 produce the same data type. Nothing changes on little-endian hosts. Stored chunks are still little-endian by default.
  • ShardingCodec now defaults its inner and index bytes codecs to little-endian, so sharded arrays written with default settings are byte-identical on every host.
  • The scale_offset codec no longer fails on arrays whose byte order is not the host's, for example a ">f8" or ">u8" array on a little-endian host.
  • Base64-encoded fill values of structured data types in Zarr V3 metadata are now read and written as little-endian bytes, whatever the byte order of the fields in memory.
  • Tests no longer assume that the host is little-endian.