You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(codecs): deprecate the host-byte-order default of BytesCodec on big-endian hosts
`BytesCodec()` without an `endian` argument means `sys.byteorder`, so the
same code writes big-endian chunks on s390x and little-endian chunks
elsewhere. The default will become "little" on every host, which is what
the codec originally defaulted to before #1660 and what the default
serializer uses. On big-endian hosts, omitting `endian` now raises a
ZarrFutureWarning; nothing changes on little-endian hosts.
Callers inside zarr (`zarr.testing` strategies, docstrings) and the tests
now pass `endian` explicitly, so they do not depend on the default.
Refs #3438
Assisted-by: ClaudeCode:claude-opus-5-5
On big-endian hosts, constructing `BytesCodec()` without an `endian` argument is deprecated and raises a `ZarrFutureWarning`. The omitted `endian` currently means the host byte order. A future release will change it to `"little"` on every host, so that stored bytes do not depend on the machine that wrote them. To keep the current behavior, pass `endian="big"`; to adopt the new default now, pass `endian="little"`. Nothing changes on little-endian hosts, where the default is already `"little"`. `BytesCodec.from_dict` and zarr's default serializer are unaffected.
0 commit comments