-
-
Notifications
You must be signed in to change notification settings - Fork 350
Closed
Description
uv run --with "zarr==3.1.0" python
Installed 8 packages in 20ms
Python 3.12.3 (main, Jun 18 2025, 17:59:45) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import zarr
>>> import numpy as np
>>> z = zarr.zeros(1,attributes={"foo": np.inf})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/bennettd/.cache/uv/archive-v0/aj-q6WYOe3uNCHBRQhpNb/lib/python3.12/site-packages/zarr/api/synchronous.py", line 1342, in zeros
return Array(sync(async_api.zeros(shape=shape, **kwargs)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bennettd/.cache/uv/archive-v0/aj-q6WYOe3uNCHBRQhpNb/lib/python3.12/site-packages/zarr/core/sync.py", line 163, in sync
raise return_result
File "/home/bennettd/.cache/uv/archive-v0/aj-q6WYOe3uNCHBRQhpNb/lib/python3.12/site-packages/zarr/core/sync.py", line 119, in _runner
return await coro
^^^^^^^^^^
File "/home/bennettd/.cache/uv/archive-v0/aj-q6WYOe3uNCHBRQhpNb/lib/python3.12/site-packages/zarr/api/asynchronous.py", line 1324, in zeros
return await create(shape=shape, fill_value=0, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bennettd/.cache/uv/archive-v0/aj-q6WYOe3uNCHBRQhpNb/lib/python3.12/site-packages/zarr/api/asynchronous.py", line 1060, in create
return await AsyncArray._create(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bennettd/.cache/uv/archive-v0/aj-q6WYOe3uNCHBRQhpNb/lib/python3.12/site-packages/zarr/core/array.py", line 656, in _create
result = await cls._create_v3(
^^^^^^^^^^^^^^^^^^^^^
File "/home/bennettd/.cache/uv/archive-v0/aj-q6WYOe3uNCHBRQhpNb/lib/python3.12/site-packages/zarr/core/array.py", line 809, in _create_v3
await array._save_metadata(metadata, ensure_parents=True)
File "/home/bennettd/.cache/uv/archive-v0/aj-q6WYOe3uNCHBRQhpNb/lib/python3.12/site-packages/zarr/core/array.py", line 1433, in _save_metadata
to_save = metadata.to_buffer_dict(cpu_buffer_prototype)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/bennettd/.cache/uv/archive-v0/aj-q6WYOe3uNCHBRQhpNb/lib/python3.12/site-packages/zarr/core/metadata/v3.py", line 291, in to_buffer_dict
json.dumps(d, allow_nan=False, indent=json_indent).encode()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/json/__init__.py", line 238, in dumps
**kw).encode(obj)
^^^^^^^^^^^
File "/usr/lib/python3.12/json/encoder.py", line 202, in encode
chunks = list(chunks)
^^^^^^^^^^^^
File "/usr/lib/python3.12/json/encoder.py", line 432, in _iterencode
yield from _iterencode_dict(o, _current_indent_level)
File "/usr/lib/python3.12/json/encoder.py", line 406, in _iterencode_dict
yield from chunks
File "/usr/lib/python3.12/json/encoder.py", line 398, in _iterencode_dict
yield _floatstr(value)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/json/encoder.py", line 240, in floatstr
raise ValueError(
ValueError: Out of range float values are not JSON compliant: inf
This worked in 3.0.x, and it broke in #2874. A fix could involve bringing back the special json encoder class.
Metadata
Metadata
Assignees
Labels
No labels