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 asFloat64(), 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, anddtype="float64"anddtype=np.float64produce the same data type. Nothing changes on little-endian hosts. Stored chunks are still little-endian by default. ShardingCodecnow defaults its inner and indexbytescodecs to little-endian, so sharded arrays written with default settings are byte-identical on every host.- The
scale_offsetcodec 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.