|
7 | 7 | from zarr.core.buffer.core import default_buffer_prototype |
8 | 8 |
|
9 | 9 | if TYPE_CHECKING: |
| 10 | + from collections.abc import Callable |
10 | 11 | from typing import Self |
11 | 12 |
|
12 | 13 | from zarr.core.buffer import Buffer, BufferPrototype |
@@ -143,9 +144,30 @@ def parse_storage_transformers(data: object) -> tuple[dict[str, JSON], ...]: |
143 | 144 |
|
144 | 145 |
|
145 | 146 | class V3JsonEncoder(json.JSONEncoder): |
146 | | - def __init__(self, *args: Any, **kwargs: Any) -> None: |
147 | | - self.indent = kwargs.pop("indent", config.get("json_indent")) |
148 | | - super().__init__(*args, **kwargs) |
| 147 | + def __init__( |
| 148 | + self, |
| 149 | + *, |
| 150 | + skipkeys: bool = False, |
| 151 | + ensure_ascii: bool = True, |
| 152 | + check_circular: bool = True, |
| 153 | + allow_nan: bool = True, |
| 154 | + sort_keys: bool = False, |
| 155 | + indent: int | None = None, |
| 156 | + separators: tuple[str, str] | None = None, |
| 157 | + default: Callable[[object], object] | None = None, |
| 158 | + ) -> None: |
| 159 | + if indent is None: |
| 160 | + indent = config.get("json_indent") |
| 161 | + super().__init__( |
| 162 | + skipkeys=skipkeys, |
| 163 | + ensure_ascii=ensure_ascii, |
| 164 | + check_circular=check_circular, |
| 165 | + allow_nan=allow_nan, |
| 166 | + sort_keys=sort_keys, |
| 167 | + indent=indent, |
| 168 | + separators=separators, |
| 169 | + default=default, |
| 170 | + ) |
149 | 171 |
|
150 | 172 | def default(self, o: object) -> Any: |
151 | 173 | if isinstance(o, np.dtype): |
|
0 commit comments