numcodecs 0.13.1__cp313-cp313-win_amd64.whl → 0.14.1__cp313-cp313-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of numcodecs might be problematic. Click here for more details.

Files changed (46) hide show
  1. numcodecs/__init__.py +12 -6
  2. numcodecs/_shuffle.cp313-win_amd64.pyd +0 -0
  3. numcodecs/abc.py +2 -1
  4. numcodecs/bitround.py +2 -1
  5. numcodecs/blosc.cp313-win_amd64.pyd +0 -0
  6. numcodecs/checksum32.py +86 -10
  7. numcodecs/compat.py +2 -4
  8. numcodecs/compat_ext.cp313-win_amd64.pyd +0 -0
  9. numcodecs/delta.py +5 -1
  10. numcodecs/fletcher32.cp313-win_amd64.pyd +0 -0
  11. numcodecs/jenkins.cp313-win_amd64.pyd +0 -0
  12. numcodecs/lz4.cp313-win_amd64.pyd +0 -0
  13. numcodecs/lzma.py +5 -2
  14. numcodecs/ndarray_like.py +1 -1
  15. numcodecs/packbits.py +0 -3
  16. numcodecs/pcodec.py +2 -3
  17. numcodecs/registry.py +9 -8
  18. numcodecs/tests/test_bitround.py +3 -3
  19. numcodecs/tests/test_blosc.py +2 -2
  20. numcodecs/tests/test_checksum32.py +113 -17
  21. numcodecs/tests/test_compat.py +3 -0
  22. numcodecs/tests/test_delta.py +1 -0
  23. numcodecs/tests/test_entrypoints.py +1 -1
  24. numcodecs/tests/test_entrypoints_backport.py +3 -2
  25. numcodecs/tests/test_fixedscaleoffset.py +13 -5
  26. numcodecs/tests/test_json.py +1 -1
  27. numcodecs/tests/test_lzma.py +4 -0
  28. numcodecs/tests/test_msgpacks.py +4 -1
  29. numcodecs/tests/test_pcodec.py +1 -1
  30. numcodecs/tests/test_registry.py +12 -10
  31. numcodecs/tests/test_shuffle.py +3 -3
  32. numcodecs/tests/test_zarr3.py +246 -0
  33. numcodecs/tests/test_zarr3_import.py +13 -0
  34. numcodecs/tests/test_zfpy.py +6 -0
  35. numcodecs/version.py +2 -2
  36. numcodecs/vlen.cp313-win_amd64.pyd +0 -0
  37. numcodecs/zarr3.py +379 -0
  38. numcodecs/zfpy.py +4 -2
  39. numcodecs/zstd.cp313-win_amd64.pyd +0 -0
  40. {numcodecs-0.13.1.dist-info → numcodecs-0.14.1.dist-info}/METADATA +20 -19
  41. numcodecs-0.14.1.dist-info/RECORD +78 -0
  42. {numcodecs-0.13.1.dist-info → numcodecs-0.14.1.dist-info}/WHEEL +1 -1
  43. numcodecs-0.14.1.dist-info/entry_points.txt +22 -0
  44. numcodecs-0.13.1.dist-info/RECORD +0 -74
  45. {numcodecs-0.13.1.dist-info → numcodecs-0.14.1.dist-info}/LICENSE.txt +0 -0
  46. {numcodecs-0.13.1.dist-info → numcodecs-0.14.1.dist-info}/top_level.txt +0 -0
numcodecs/zarr3.py ADDED
@@ -0,0 +1,379 @@
1
+ """
2
+ This module provides the compatibility for :py:mod:`numcodecs` in Zarr version 3.
3
+
4
+ A compatibility module is required because the codec handling in Zarr version 3 is different from Zarr version 2.
5
+
6
+ You can use codecs from :py:mod:`numcodecs` by constructing codecs from :py:mod:`numcodecs.zarr3` using the same parameters as the original codecs.
7
+
8
+ >>> import zarr
9
+ >>> import numcodecs.zarr3
10
+ >>>
11
+ >>> codecs = [zarr.codecs.BytesCodec(), numcodecs.zarr3.BZ2(level=5)]
12
+ >>> array = zarr.open(
13
+ ... "data.zarr", mode="w",
14
+ ... shape=(1024, 1024), chunks=(64, 64),
15
+ ... dtype="uint32",
16
+ ... codecs=codecs)
17
+ >>> array[:] = np.arange(*array.shape).astype(array.dtype)
18
+
19
+ .. note::
20
+
21
+ Please note that the codecs in :py:mod:`numcodecs.zarr3` are not part of the Zarr version 3 specification.
22
+ Using these codecs might cause interoperability issues with other Zarr implementations.
23
+ """
24
+
25
+ from __future__ import annotations
26
+
27
+ import asyncio
28
+ import math
29
+ from dataclasses import dataclass, replace
30
+ from functools import cached_property, partial
31
+ from typing import Any, Self, TypeVar
32
+ from warnings import warn
33
+
34
+ import numpy as np
35
+
36
+ import numcodecs
37
+
38
+ try:
39
+ import zarr
40
+
41
+ if zarr.__version__ < "3.0.0": # pragma: no cover
42
+ raise ImportError("zarr 3.0.0 or later is required to use the numcodecs zarr integration.")
43
+ except ImportError: # pragma: no cover
44
+ raise ImportError("zarr 3.0.0 or later is required to use the numcodecs zarr integration.")
45
+
46
+ from zarr.abc.codec import ArrayArrayCodec, ArrayBytesCodec, BytesBytesCodec
47
+ from zarr.abc.metadata import Metadata
48
+ from zarr.core.array_spec import ArraySpec
49
+ from zarr.core.buffer import Buffer, BufferPrototype, NDBuffer
50
+ from zarr.core.buffer.cpu import as_numpy_array_wrapper
51
+ from zarr.core.common import JSON, parse_named_configuration, product
52
+
53
+ CODEC_PREFIX = "numcodecs."
54
+
55
+
56
+ def _expect_name_prefix(codec_name: str) -> str:
57
+ if not codec_name.startswith(CODEC_PREFIX):
58
+ raise ValueError(
59
+ f"Expected name to start with '{CODEC_PREFIX}'. Got {codec_name} instead."
60
+ ) # pragma: no cover
61
+ return codec_name.removeprefix(CODEC_PREFIX)
62
+
63
+
64
+ def _parse_codec_configuration(data: dict[str, JSON]) -> dict[str, JSON]:
65
+ parsed_name, parsed_configuration = parse_named_configuration(data)
66
+ if not parsed_name.startswith(CODEC_PREFIX):
67
+ raise ValueError(
68
+ f"Expected name to start with '{CODEC_PREFIX}'. Got {parsed_name} instead."
69
+ ) # pragma: no cover
70
+ id = _expect_name_prefix(parsed_name)
71
+ return {"id": id, **parsed_configuration}
72
+
73
+
74
+ @dataclass(frozen=True)
75
+ class _NumcodecsCodec(Metadata):
76
+ codec_name: str
77
+ codec_config: dict[str, JSON]
78
+
79
+ def __init__(self, **codec_config: JSON) -> None:
80
+ if not self.codec_name:
81
+ raise ValueError(
82
+ "The codec name needs to be supplied through the `codec_name` attribute."
83
+ ) # pragma: no cover
84
+ unprefixed_codec_name = _expect_name_prefix(self.codec_name)
85
+
86
+ if "id" not in codec_config:
87
+ codec_config = {"id": unprefixed_codec_name, **codec_config}
88
+ elif codec_config["id"] != unprefixed_codec_name:
89
+ raise ValueError(
90
+ f"Codec id does not match {unprefixed_codec_name}. Got: {codec_config['id']}."
91
+ ) # pragma: no cover
92
+
93
+ object.__setattr__(self, "codec_config", codec_config)
94
+ warn(
95
+ "Numcodecs codecs are not in the Zarr version 3 specification and "
96
+ "may not be supported by other zarr implementations.",
97
+ category=UserWarning,
98
+ )
99
+
100
+ @cached_property
101
+ def _codec(self) -> numcodecs.abc.Codec:
102
+ return numcodecs.get_codec(self.codec_config)
103
+
104
+ @classmethod
105
+ def from_dict(cls, data: dict[str, JSON]) -> Self:
106
+ codec_config = _parse_codec_configuration(data)
107
+ return cls(**codec_config)
108
+
109
+ def to_dict(self) -> dict[str, JSON]:
110
+ codec_config = self.codec_config.copy()
111
+ return {
112
+ "name": self.codec_name,
113
+ "configuration": codec_config,
114
+ }
115
+
116
+ def compute_encoded_size(self, input_byte_length: int, chunk_spec: ArraySpec) -> int:
117
+ raise NotImplementedError # pragma: no cover
118
+
119
+
120
+ class _NumcodecsBytesBytesCodec(_NumcodecsCodec, BytesBytesCodec):
121
+ def __init__(self, **codec_config: JSON) -> None:
122
+ super().__init__(**codec_config)
123
+
124
+ async def _decode_single(self, chunk_bytes: Buffer, chunk_spec: ArraySpec) -> Buffer:
125
+ return await asyncio.to_thread(
126
+ as_numpy_array_wrapper,
127
+ self._codec.decode,
128
+ chunk_bytes,
129
+ chunk_spec.prototype,
130
+ )
131
+
132
+ def _encode(self, chunk_bytes: Buffer, prototype: BufferPrototype) -> Buffer:
133
+ encoded = self._codec.encode(chunk_bytes.as_array_like())
134
+ if isinstance(encoded, np.ndarray): # Required for checksum codecs
135
+ return prototype.buffer.from_bytes(encoded.tobytes())
136
+ return prototype.buffer.from_bytes(encoded)
137
+
138
+ async def _encode_single(self, chunk_bytes: Buffer, chunk_spec: ArraySpec) -> Buffer:
139
+ return await asyncio.to_thread(self._encode, chunk_bytes, chunk_spec.prototype)
140
+
141
+
142
+ class _NumcodecsArrayArrayCodec(_NumcodecsCodec, ArrayArrayCodec):
143
+ def __init__(self, **codec_config: JSON) -> None:
144
+ super().__init__(**codec_config)
145
+
146
+ async def _decode_single(self, chunk_array: NDBuffer, chunk_spec: ArraySpec) -> NDBuffer:
147
+ chunk_ndarray = chunk_array.as_ndarray_like()
148
+ out = await asyncio.to_thread(self._codec.decode, chunk_ndarray)
149
+ return chunk_spec.prototype.nd_buffer.from_ndarray_like(out.reshape(chunk_spec.shape))
150
+
151
+ async def _encode_single(self, chunk_array: NDBuffer, chunk_spec: ArraySpec) -> NDBuffer:
152
+ chunk_ndarray = chunk_array.as_ndarray_like()
153
+ out = await asyncio.to_thread(self._codec.encode, chunk_ndarray)
154
+ return chunk_spec.prototype.nd_buffer.from_ndarray_like(out)
155
+
156
+
157
+ class _NumcodecsArrayBytesCodec(_NumcodecsCodec, ArrayBytesCodec):
158
+ def __init__(self, **codec_config: JSON) -> None:
159
+ super().__init__(**codec_config)
160
+
161
+ async def _decode_single(self, chunk_buffer: Buffer, chunk_spec: ArraySpec) -> NDBuffer:
162
+ chunk_bytes = chunk_buffer.to_bytes()
163
+ out = await asyncio.to_thread(self._codec.decode, chunk_bytes)
164
+ return chunk_spec.prototype.nd_buffer.from_ndarray_like(out.reshape(chunk_spec.shape))
165
+
166
+ async def _encode_single(self, chunk_ndbuffer: NDBuffer, chunk_spec: ArraySpec) -> Buffer:
167
+ chunk_ndarray = chunk_ndbuffer.as_ndarray_like()
168
+ out = await asyncio.to_thread(self._codec.encode, chunk_ndarray)
169
+ return chunk_spec.prototype.buffer.from_bytes(out)
170
+
171
+
172
+ T = TypeVar("T", bound=_NumcodecsCodec)
173
+
174
+
175
+ def _add_docstring(cls: type[T], ref_class_name: str) -> type[T]:
176
+ cls.__doc__ = f"""
177
+ See :class:`{ref_class_name}` for more details and parameters.
178
+ """
179
+ return cls
180
+
181
+
182
+ def _add_docstring_wrapper(ref_class_name: str) -> partial:
183
+ return partial(_add_docstring, ref_class_name=ref_class_name)
184
+
185
+
186
+ def _make_bytes_bytes_codec(codec_name: str, cls_name: str) -> type[_NumcodecsBytesBytesCodec]:
187
+ # rename for class scope
188
+ _codec_name = CODEC_PREFIX + codec_name
189
+
190
+ class _Codec(_NumcodecsBytesBytesCodec):
191
+ codec_name = _codec_name
192
+
193
+ def __init__(self, **codec_config: JSON) -> None:
194
+ super().__init__(**codec_config)
195
+
196
+ _Codec.__name__ = cls_name
197
+ return _Codec
198
+
199
+
200
+ def _make_array_array_codec(codec_name: str, cls_name: str) -> type[_NumcodecsArrayArrayCodec]:
201
+ # rename for class scope
202
+ _codec_name = CODEC_PREFIX + codec_name
203
+
204
+ class _Codec(_NumcodecsArrayArrayCodec):
205
+ codec_name = _codec_name
206
+
207
+ def __init__(self, **codec_config: JSON) -> None:
208
+ super().__init__(**codec_config)
209
+
210
+ _Codec.__name__ = cls_name
211
+ return _Codec
212
+
213
+
214
+ def _make_array_bytes_codec(codec_name: str, cls_name: str) -> type[_NumcodecsArrayBytesCodec]:
215
+ # rename for class scope
216
+ _codec_name = CODEC_PREFIX + codec_name
217
+
218
+ class _Codec(_NumcodecsArrayBytesCodec):
219
+ codec_name = _codec_name
220
+
221
+ def __init__(self, **codec_config: JSON) -> None:
222
+ super().__init__(**codec_config)
223
+
224
+ _Codec.__name__ = cls_name
225
+ return _Codec
226
+
227
+
228
+ def _make_checksum_codec(codec_name: str, cls_name: str) -> type[_NumcodecsBytesBytesCodec]:
229
+ # rename for class scope
230
+ _codec_name = CODEC_PREFIX + codec_name
231
+
232
+ class _ChecksumCodec(_NumcodecsBytesBytesCodec):
233
+ codec_name = _codec_name
234
+
235
+ def __init__(self, **codec_config: JSON) -> None:
236
+ super().__init__(**codec_config)
237
+
238
+ def compute_encoded_size(self, input_byte_length: int, chunk_spec: ArraySpec) -> int:
239
+ return input_byte_length + 4 # pragma: no cover
240
+
241
+ _ChecksumCodec.__name__ = cls_name
242
+ return _ChecksumCodec
243
+
244
+
245
+ # bytes-to-bytes codecs
246
+ Blosc = _add_docstring(_make_bytes_bytes_codec("blosc", "Blosc"), "numcodecs.blosc.Blosc")
247
+ LZ4 = _add_docstring(_make_bytes_bytes_codec("lz4", "LZ4"), "numcodecs.lz4.LZ4")
248
+ Zstd = _add_docstring(_make_bytes_bytes_codec("zstd", "Zstd"), "numcodecs.zstd.Zstd")
249
+ Zlib = _add_docstring(_make_bytes_bytes_codec("zlib", "Zlib"), "numcodecs.zlib.Zlib")
250
+ GZip = _add_docstring(_make_bytes_bytes_codec("gzip", "GZip"), "numcodecs.gzip.GZip")
251
+ BZ2 = _add_docstring(_make_bytes_bytes_codec("bz2", "BZ2"), "numcodecs.bz2.BZ2")
252
+ LZMA = _add_docstring(_make_bytes_bytes_codec("lzma", "LZMA"), "numcodecs.lzma.LZMA")
253
+
254
+
255
+ @_add_docstring_wrapper("numcodecs.shuffle.Shuffle")
256
+ class Shuffle(_NumcodecsBytesBytesCodec):
257
+ codec_name = f"{CODEC_PREFIX}shuffle"
258
+
259
+ def __init__(self, **codec_config: JSON) -> None:
260
+ super().__init__(**codec_config)
261
+
262
+ def evolve_from_array_spec(self, array_spec: ArraySpec) -> Shuffle:
263
+ if array_spec.dtype.itemsize != self.codec_config.get("elementsize"):
264
+ return Shuffle(**{**self.codec_config, "elementsize": array_spec.dtype.itemsize})
265
+ return self # pragma: no cover
266
+
267
+
268
+ # array-to-array codecs ("filters")
269
+ Delta = _add_docstring(_make_array_array_codec("delta", "Delta"), "numcodecs.delta.Delta")
270
+ BitRound = _add_docstring(
271
+ _make_array_array_codec("bitround", "BitRound"), "numcodecs.bitround.BitRound"
272
+ )
273
+
274
+
275
+ @_add_docstring_wrapper("numcodecs.fixedscaleoffset.FixedScaleOffset")
276
+ class FixedScaleOffset(_NumcodecsArrayArrayCodec):
277
+ codec_name = f"{CODEC_PREFIX}fixedscaleoffset"
278
+
279
+ def __init__(self, **codec_config: JSON) -> None:
280
+ super().__init__(**codec_config)
281
+
282
+ def resolve_metadata(self, chunk_spec: ArraySpec) -> ArraySpec:
283
+ if astype := self.codec_config.get("astype"):
284
+ return replace(chunk_spec, dtype=np.dtype(astype)) # type: ignore[arg-type]
285
+ return chunk_spec
286
+
287
+ def evolve_from_array_spec(self, array_spec: ArraySpec) -> FixedScaleOffset:
288
+ if str(array_spec.dtype) != self.codec_config.get("dtype"):
289
+ return FixedScaleOffset(**{**self.codec_config, "dtype": str(array_spec.dtype)})
290
+ return self
291
+
292
+
293
+ @_add_docstring_wrapper("numcodecs.quantize.Quantize")
294
+ class Quantize(_NumcodecsArrayArrayCodec):
295
+ codec_name = f"{CODEC_PREFIX}quantize"
296
+
297
+ def __init__(self, **codec_config: JSON) -> None:
298
+ super().__init__(**codec_config)
299
+
300
+ def evolve_from_array_spec(self, array_spec: ArraySpec) -> Quantize:
301
+ if str(array_spec.dtype) != self.codec_config.get("dtype"):
302
+ return Quantize(**{**self.codec_config, "dtype": str(array_spec.dtype)})
303
+ return self
304
+
305
+
306
+ @_add_docstring_wrapper("numcodecs.packbits.PackBits")
307
+ class PackBits(_NumcodecsArrayArrayCodec):
308
+ codec_name = f"{CODEC_PREFIX}packbits"
309
+
310
+ def __init__(self, **codec_config: JSON) -> None:
311
+ super().__init__(**codec_config)
312
+
313
+ def resolve_metadata(self, chunk_spec: ArraySpec) -> ArraySpec:
314
+ return replace(
315
+ chunk_spec,
316
+ shape=(1 + math.ceil(product(chunk_spec.shape) / 8),),
317
+ dtype=np.dtype("uint8"),
318
+ )
319
+
320
+ def validate(self, *, dtype: np.dtype[Any], **_kwargs) -> None:
321
+ if dtype != np.dtype("bool"):
322
+ raise ValueError(f"Packbits filter requires bool dtype. Got {dtype}.")
323
+
324
+
325
+ @_add_docstring_wrapper("numcodecs.astype.AsType")
326
+ class AsType(_NumcodecsArrayArrayCodec):
327
+ codec_name = f"{CODEC_PREFIX}astype"
328
+
329
+ def __init__(self, **codec_config: JSON) -> None:
330
+ super().__init__(**codec_config)
331
+
332
+ def resolve_metadata(self, chunk_spec: ArraySpec) -> ArraySpec:
333
+ return replace(chunk_spec, dtype=np.dtype(self.codec_config["encode_dtype"])) # type: ignore[arg-type]
334
+
335
+ def evolve_from_array_spec(self, array_spec: ArraySpec) -> AsType:
336
+ decode_dtype = self.codec_config.get("decode_dtype")
337
+ if str(array_spec.dtype) != decode_dtype:
338
+ return AsType(**{**self.codec_config, "decode_dtype": str(array_spec.dtype)})
339
+ return self
340
+
341
+
342
+ # bytes-to-bytes checksum codecs
343
+ CRC32 = _add_docstring(_make_checksum_codec("crc32", "CRC32"), "numcodecs.checksum32.CRC32")
344
+ CRC32C = _add_docstring(_make_checksum_codec("crc32c", "CRC32C"), "numcodecs.checksum32.CRC32C")
345
+ Adler32 = _add_docstring(_make_checksum_codec("adler32", "Adler32"), "numcodecs.checksum32.Adler32")
346
+ Fletcher32 = _add_docstring(
347
+ _make_checksum_codec("fletcher32", "Fletcher32"), "numcodecs.fletcher32.Fletcher32"
348
+ )
349
+ JenkinsLookup3 = _add_docstring(
350
+ _make_checksum_codec("jenkins_lookup3", "JenkinsLookup3"), "numcodecs.checksum32.JenkinsLookup3"
351
+ )
352
+
353
+ # array-to-bytes codecs
354
+ PCodec = _add_docstring(_make_array_bytes_codec("pcodec", "PCodec"), "numcodecs.pcodec.PCodec")
355
+ ZFPY = _add_docstring(_make_array_bytes_codec("zfpy", "ZFPY"), "numcodecs.zfpy.ZFPY")
356
+
357
+ __all__ = [
358
+ "Blosc",
359
+ "LZ4",
360
+ "Zstd",
361
+ "Zlib",
362
+ "GZip",
363
+ "BZ2",
364
+ "LZMA",
365
+ "Shuffle",
366
+ "Delta",
367
+ "BitRound",
368
+ "FixedScaleOffset",
369
+ "Quantize",
370
+ "PackBits",
371
+ "AsType",
372
+ "CRC32",
373
+ "CRC32C",
374
+ "Adler32",
375
+ "Fletcher32",
376
+ "JenkinsLookup3",
377
+ "PCodec",
378
+ "ZFPY",
379
+ ]
numcodecs/zfpy.py CHANGED
@@ -1,8 +1,10 @@
1
1
  import warnings
2
2
  from contextlib import suppress
3
3
  from importlib.metadata import PackageNotFoundError, version
4
+ from types import ModuleType
5
+ from typing import Optional
4
6
 
5
- _zfpy = None
7
+ _zfpy: Optional[ModuleType] = None
6
8
 
7
9
  _zfpy_version: tuple = ()
8
10
  with suppress(PackageNotFoundError):
@@ -21,7 +23,7 @@ if _zfpy_version:
21
23
  )
22
24
  else:
23
25
  with suppress(ImportError):
24
- import zfpy as _zfpy
26
+ import zfpy as _zfpy # type: ignore[no-redef]
25
27
 
26
28
  if _zfpy:
27
29
  import numpy as np
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: numcodecs
3
- Version: 0.13.1
3
+ Version: 0.14.1
4
4
  Summary: A Python package providing buffer compression and transformation codecs for use in data storage and communication applications.
5
5
  Maintainer-email: Alistair Miles <alimanfoo@googlemail.com>
6
6
  License: MIT
@@ -18,29 +18,30 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
18
  Classifier: Operating System :: Unix
19
19
  Classifier: Programming Language :: Python :: 3
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Requires-Python: >=3.10
21
+ Requires-Python: >=3.11
22
22
  Description-Content-Type: text/x-rst
23
23
  License-File: LICENSE.txt
24
- Requires-Dist: numpy >=1.7
24
+ Requires-Dist: numpy>=1.24
25
25
  Provides-Extra: docs
26
- Requires-Dist: sphinx ; extra == 'docs'
27
- Requires-Dist: sphinx-issues ; extra == 'docs'
28
- Requires-Dist: pydata-sphinx-theme ; extra == 'docs'
29
- Requires-Dist: numpydoc ; extra == 'docs'
30
- Requires-Dist: mock ; extra == 'docs'
31
- Provides-Extra: msgpack
32
- Requires-Dist: msgpack ; extra == 'msgpack'
33
- Provides-Extra: pcodec
34
- Requires-Dist: pcodec >=0.2.0 ; extra == 'pcodec'
26
+ Requires-Dist: sphinx; extra == "docs"
27
+ Requires-Dist: sphinx-issues; extra == "docs"
28
+ Requires-Dist: pydata-sphinx-theme; extra == "docs"
29
+ Requires-Dist: numpydoc; extra == "docs"
35
30
  Provides-Extra: test
36
- Requires-Dist: coverage ; extra == 'test'
37
- Requires-Dist: pytest ; extra == 'test'
38
- Requires-Dist: pytest-cov ; extra == 'test'
39
- Provides-Extra: test_extras
40
- Requires-Dist: importlib-metadata ; extra == 'test_extras'
31
+ Requires-Dist: coverage; extra == "test"
32
+ Requires-Dist: pytest; extra == "test"
33
+ Requires-Dist: pytest-cov; extra == "test"
34
+ Provides-Extra: test-extras
35
+ Requires-Dist: importlib_metadata; extra == "test-extras"
36
+ Provides-Extra: msgpack
37
+ Requires-Dist: msgpack; extra == "msgpack"
41
38
  Provides-Extra: zfpy
42
- Requires-Dist: zfpy >=1.0.0 ; extra == 'zfpy'
43
- Requires-Dist: numpy <2.0.0 ; extra == 'zfpy'
39
+ Requires-Dist: zfpy>=1.0.0; extra == "zfpy"
40
+ Requires-Dist: numpy<2.0.0; extra == "zfpy"
41
+ Provides-Extra: pcodec
42
+ Requires-Dist: pcodec<0.3,>=0.2; extra == "pcodec"
43
+ Provides-Extra: crc32c
44
+ Requires-Dist: crc32c>=2.7; extra == "crc32c"
44
45
 
45
46
  Numcodecs
46
47
  =========
@@ -0,0 +1,78 @@
1
+ numcodecs/__init__.py,sha256=9uLJwNm76SSqG2wkqlSocbuGZmsaR-e2ZB1Z6Bl1JiE,3426
2
+ numcodecs/_shuffle.cp313-win_amd64.pyd,sha256=bzByiE4491cEuCRUrS4O9u-GoJRanrY5Eue52epMLEw,136704
3
+ numcodecs/abc.py,sha256=t_l-aLoyocVHk0pYEPjfcRlctzLeDY2wNyCIr-yCEHk,4632
4
+ numcodecs/astype.py,sha256=py0m2RrDdDjvEORxWNXaarBE2xKdCkjNWeMf6GCoLg4,2213
5
+ numcodecs/base64.py,sha256=E9166xLd0qzo9IZGb3PdP2jENITahjeD6krbochvBX8,811
6
+ numcodecs/bitround.py,sha256=m9gysWTzZH_MA0H7oI3dfBIZh66yxHM4gik8aq6xA_0,2925
7
+ numcodecs/blosc.cp313-win_amd64.pyd,sha256=yAJCQ92y_4bRAcD4yc1s3bgQkBdU-iOHy2oN1vfErvw,607744
8
+ numcodecs/bz2.py,sha256=bS0L4XqzJDw6pU4MUuEF8UgFOHw6mErnqCXZVg8TEiI,1219
9
+ numcodecs/categorize.py,sha256=EZFF7KyjniCT3LzsitUS3DgJmcNWk1rguTLJemScgJY,3084
10
+ numcodecs/checksum32.py,sha256=GgYbg84gGAH9Jq-ZwATsL6G-bDXI20LQ1gHXg75oh-E,5605
11
+ numcodecs/compat.py,sha256=ghz0-UpxV0q_mAaiZLZv6BBhJNNLeLTDGirO4Oda_ZM,6711
12
+ numcodecs/compat_ext.cp313-win_amd64.pyd,sha256=9Xjj5Xtu8MzaI1bRKeXP5Yu6YlcM03jY19v2O2_bR_8,33280
13
+ numcodecs/delta.py,sha256=nb4KlQULJXXXfbw30W2y3h4g_FPJsh7gVikRTNrr7pQ,3085
14
+ numcodecs/fixedscaleoffset.py,sha256=tM3faGimeCC2hzjuyPZU7dfPrSXlIf8kU1rLADUFov0,4328
15
+ numcodecs/fletcher32.cp313-win_amd64.pyd,sha256=b5cXxZ4vepSPc3JlXRtVxc4CDc1lIdVSI8kq--bsdVE,157696
16
+ numcodecs/gzip.py,sha256=vPmEDJDkgW14icC-sGeQz1wDUqifhmRBC_B6V-vdEqY,1521
17
+ numcodecs/jenkins.cp313-win_amd64.pyd,sha256=ddDrZEbcfeXCcZBxPpwUJC0Y5Pvbp8DFddUCblbESQ4,147456
18
+ numcodecs/json.py,sha256=VtI1U1zEGotH56zVWnAA7UwKWso1Kukwyzy_mopVIgY,3462
19
+ numcodecs/lz4.cp313-win_amd64.pyd,sha256=k6XU2jHXSsPY2aItdsK7TYMIY30eHR5-VaJ3BsNleuw,70656
20
+ numcodecs/lzma.py,sha256=7rF9ukBOyYWoZ8pf-qdRF7BVjuT5rggrfErW8ogfgTA,2313
21
+ numcodecs/msgpacks.py,sha256=58AVf8VovnBaFaVakLU3dRHodLMsJUlMe6uVaYSwmfY,2697
22
+ numcodecs/ndarray_like.py,sha256=CRUhXM5bImhOdY1Gsehy6vzj7-XwobO15WkbOdC4lMo,1961
23
+ numcodecs/packbits.py,sha256=hEaOSpjUxOTlNAXFvDp5Djo7wwqwuFGaRfEDrB07bDY,2075
24
+ numcodecs/pcodec.py,sha256=XhEoeniapMgZTtikihWJZ7JQ8UqMVprsdCqJzt800UY,3147
25
+ numcodecs/pickles.py,sha256=MEyNRXM6dQC62LBc4X46q83ZSa6L3Ord5rFst3E7wvQ,1343
26
+ numcodecs/quantize.py,sha256=6cRZolHGF_TToxuB5WhYz7XrirFS9exsr7nKwIzIv6Y,3137
27
+ numcodecs/registry.py,sha256=B4o8EavOT6inaT2ttOWucErt204F8NvgfDt0qM46fHU,1906
28
+ numcodecs/shuffle.py,sha256=ty-NJ1bIgsErwmTyJtspSgrrJ4PspQjp6Hb-U2M17hY,1636
29
+ numcodecs/version.py,sha256=PmPMi-W0oYwFnGNPqq2XLCoXtDYpahw_1xhTDJEKPu8,429
30
+ numcodecs/vlen.cp313-win_amd64.pyd,sha256=AKrkXYY9JYRU680NqRjTMdu_VFzrLw_SVmn4RoNhyyU,201216
31
+ numcodecs/zarr3.py,sha256=ZNGFTV9Kqx7ZdK0PWw5QYPPGGrob4GLO_PcK87m6ZEk,14327
32
+ numcodecs/zfpy.py,sha256=BBzbxbAfu7QnFgowD-zTcWYFQzso34MA6BsOn2QA5lg,4014
33
+ numcodecs/zlib.py,sha256=C5TO2qRPyG6SY25lmB9qeFh6yr4IRAqHz0v4RaPvygE,1091
34
+ numcodecs/zstd.cp313-win_amd64.pyd,sha256=X1uzXtuzL9eHNQbtlrZrrzRlJG91pPlc1X6xjrH5LV8,447488
35
+ numcodecs/tests/__init__.py,sha256=W7MDbDAXcjl7fVmolo3U_30rFkOCb6mWQ8vcByUpu8g,75
36
+ numcodecs/tests/common.py,sha256=94e6AU1RBb-ipYNyInSuQxA67SIVNSdf3dxJVavrVfQ,12522
37
+ numcodecs/tests/test_astype.py,sha256=m-l8k4q8jSZrIqviASKxYsaPzzuBG_Y4tUNlIigYbco,2441
38
+ numcodecs/tests/test_base64.py,sha256=znf-cMk2JBW3vjcZu7CpC2b9wIiIzBPwfmHX_WlkZ1o,2396
39
+ numcodecs/tests/test_bitround.py,sha256=idosc7MlWLWoA93jFFPgfKk1WzazmaLqH3gzCsVV0F0,2430
40
+ numcodecs/tests/test_blosc.py,sha256=xdmN2nKRbiqJ3xEDB9USCsZau1xagoRgeCwg2mKrOxM,9143
41
+ numcodecs/tests/test_bz2.py,sha256=iH9BPZ8wtXCEfq52RXOqQ9bmQsTMiy3uujIKNpi2Mqs,1955
42
+ numcodecs/tests/test_categorize.py,sha256=wug4Im375r3nM1oTIrDVW5woZiZDCsp5uE1Fz6qwIkI,2843
43
+ numcodecs/tests/test_checksum32.py,sha256=1ZbJrUXPFAPZdmKYso0u0lHBUBtdyA-mfiQdmXRqdqs,4755
44
+ numcodecs/tests/test_compat.py,sha256=QrUZ0emqDH6jEe2gpVlb1i-muN6aQ5H66yDVY_14MkM,3839
45
+ numcodecs/tests/test_delta.py,sha256=UnHvcBDjHip_rj6OJjmOFC9_JzyKc-fUqawhmBwtTwM,1697
46
+ numcodecs/tests/test_entrypoints.py,sha256=VwwND3ksTWurNP-BF5mNvWqKxeKjQcc7LpQd_nrFRgA,528
47
+ numcodecs/tests/test_entrypoints_backport.py,sha256=f6XhPlKamigHRYZtpytKGekDMk2dzVtGzrb1UYRh2xs,1144
48
+ numcodecs/tests/test_fixedscaleoffset.py,sha256=poPtElIN0bWza_m-AWrGxCKSOuqxJIIDzMm4P7JMMJ8,2613
49
+ numcodecs/tests/test_fletcher32.py,sha256=J5ND8xcy4QQKYUYBaH_VyBzKm5biFoV9H5Fp9NsVe3s,1512
50
+ numcodecs/tests/test_gzip.py,sha256=khoVo8QEV4edhsWBHzNk3Tk2xYOwQChddE_5vforF5M,3035
51
+ numcodecs/tests/test_jenkins.py,sha256=h2VG0hFkf6umeUqoXna8cpn_XmdcDNv1sWOQJmk43jI,4596
52
+ numcodecs/tests/test_json.py,sha256=OVU-k1OXRnb8FlwOm2wkDaiBhs_XC_sr4YSS4qNVnT0,2377
53
+ numcodecs/tests/test_lz4.py,sha256=pYCzUhI8o0LY1Jfj82EMIbPreZikBY1dB67GJqdZZn0,2436
54
+ numcodecs/tests/test_lzma.py,sha256=6-qar7FrAu9dgvWxiiVVHPSszT_xHWZ2N7g0pnNpl4U,2815
55
+ numcodecs/tests/test_msgpacks.py,sha256=97mj-y_xOxfW-aZwXoj85_cswuCN1DqRpYoTSFBn2PA,4076
56
+ numcodecs/tests/test_ndarray_like.py,sha256=GXx-XTSKK8wGLlEeuvrgdFDQ3uGtV55-fKKjzN6G0gc,1321
57
+ numcodecs/tests/test_packbits.py,sha256=UWXpYyaHLybqOHgZgVTP_5VeibGO09CyJyKSO_mTCeI,1028
58
+ numcodecs/tests/test_pcodec.py,sha256=01L2OyQKUx42mNHR7l0PzJX5MJwWodKyucmpokFlvwE,2104
59
+ numcodecs/tests/test_pickles.py,sha256=zhmZPPiCgW3uFArYvixgiMPWXdmKjnCj0JThUDt8nn4,1740
60
+ numcodecs/tests/test_quantize.py,sha256=muD4zwQSa4XM4jPO3qXu8rMdoU4eHCpVfQ8z0G7Zh-U,2227
61
+ numcodecs/tests/test_registry.py,sha256=EGM5EwW9MboaLAwO-9nmDc1sTZEEYWsnZac1A3DzCH4,1094
62
+ numcodecs/tests/test_shuffle.py,sha256=Fd1vx8yeOr2JMu4kvTJrVsUtrAJmFBMgbsZUhfB0Rpk,4857
63
+ numcodecs/tests/test_vlen_array.py,sha256=sUwLaza31Yo0IMnmKCGykRPaB3ha7i0ImiCY9yvHS9o,2574
64
+ numcodecs/tests/test_vlen_bytes.py,sha256=ujYHFkBn7EultxVkEepbmFriQfO_pJxfh7dEfTxCCco,2566
65
+ numcodecs/tests/test_vlen_utf8.py,sha256=X0nBvLv1hVDHGz3pIRMP4rVs75lAkXGUb0cRcfZM1Ss,2565
66
+ numcodecs/tests/test_zarr3.py,sha256=dK2O5b0IHNYAWaLGOydn6YvbtAEozTupXDDoxoih76Y,7784
67
+ numcodecs/tests/test_zarr3_import.py,sha256=enI8IqSnTynihEQ2mh95UdTZ5Gb8m9Wock6gbg3iLYs,345
68
+ numcodecs/tests/test_zfpy.py,sha256=lSkKcpGg437poMRQ88EDYdbQVIqKmF0Il-ASdlYkkIY,2866
69
+ numcodecs/tests/test_zlib.py,sha256=SxgYIyH2bH_eIX7k-9kgPUOXCHEllGPoLSUSn0Qk5rg,2633
70
+ numcodecs/tests/test_zstd.py,sha256=P-wHnm0wOuclHOoX7danVEvufxKNM3GwYBgHBchzILE,2702
71
+ numcodecs/tests/package_with_entrypoint/__init__.py,sha256=j0h1AHePXH8ONfd-TMGwKsMW4gBqbgiGOuGP25S9hLE,223
72
+ numcodecs-0.14.1.dist-info/LICENSE.txt,sha256=IxxTq7WTy9_G9AbShWjbBcg6x2G3pDlJEIBJN2o95ks,1145
73
+ numcodecs-0.14.1.dist-info/METADATA,sha256=JV9Kq9F_CRLvxfDM0ptaF5EIAYPNTByg0kiQnCFPXjk,3017
74
+ numcodecs-0.14.1.dist-info/WHEEL,sha256=4-iQBlRoDdX1wfPofc7KLWa5Cys4eZSgXs6GVU8fKlQ,101
75
+ numcodecs-0.14.1.dist-info/entry_points.txt,sha256=3W3FHKrwE52X3fLq8KdioOtf93lh5KaoGV5t2D10DBI,919
76
+ numcodecs-0.14.1.dist-info/top_level.txt,sha256=JkHllzt6IuVudg4Tk--wF-yfPPsdVOiMTag1tjGIihw,10
77
+ numcodecs/tests/package_with_entrypoint-0.1.dist-info/entry_points.txt,sha256=COk3sfJsTt3T00bA2bcUMCuWEhwkQvf4lPHcBDk34qA,62
78
+ numcodecs-0.14.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.1.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp313-cp313-win_amd64
5
5
 
@@ -0,0 +1,22 @@
1
+ [zarr.codecs]
2
+ numcodecs.adler32 = numcodecs.zarr3:Adler32
3
+ numcodecs.astype = numcodecs.zarr3:AsType
4
+ numcodecs.bitround = numcodecs.zarr3:BitRound
5
+ numcodecs.blosc = numcodecs.zarr3:Blosc
6
+ numcodecs.bz2 = numcodecs.zarr3:BZ2
7
+ numcodecs.crc32 = numcodecs.zarr3:CRC32
8
+ numcodecs.crc32c = numcodecs.zarr3:CRC32C
9
+ numcodecs.delta = numcodecs.zarr3:Delta
10
+ numcodecs.fixedscaleoffset = numcodecs.zarr3:FixedScaleOffset
11
+ numcodecs.fletcher32 = numcodecs.zarr3:Fletcher32
12
+ numcodecs.gzip = numcodecs.zarr3:GZip
13
+ numcodecs.jenkins_lookup3 = numcodecs.zarr3:JenkinsLookup3
14
+ numcodecs.lz4 = numcodecs.zarr3:LZ4
15
+ numcodecs.lzma = numcodecs.zarr3:LZMA
16
+ numcodecs.packbits = numcodecs.zarr3:PackBits
17
+ numcodecs.pcodec = numcodecs.zarr3:PCodec
18
+ numcodecs.quantize = numcodecs.zarr3:Quantize
19
+ numcodecs.shuffle = numcodecs.zarr3:Shuffle
20
+ numcodecs.zfpy = numcodecs.zarr3:ZFPY
21
+ numcodecs.zlib = numcodecs.zarr3:Zlib
22
+ numcodecs.zstd = numcodecs.zarr3:Zstd
@@ -1,74 +0,0 @@
1
- numcodecs/__init__.py,sha256=7HLiouBg6GIdrvANRbZFmvg6WaML3udAs9AvQa6owYM,3244
2
- numcodecs/_shuffle.cp313-win_amd64.pyd,sha256=sxAZM59LD-Ip7RnoOFMF2rNSmykJgG2k-XrWxVv48aM,137216
3
- numcodecs/abc.py,sha256=9zrXoDcAFapcMRGrSThzyi7hNPKlKFZ0FBSZx2vbUEE,4588
4
- numcodecs/astype.py,sha256=py0m2RrDdDjvEORxWNXaarBE2xKdCkjNWeMf6GCoLg4,2213
5
- numcodecs/base64.py,sha256=E9166xLd0qzo9IZGb3PdP2jENITahjeD6krbochvBX8,811
6
- numcodecs/bitround.py,sha256=RBVQ6-zIIkNs93hnulHXsNkLMhfrYxzlKGZ5zATNUig,2903
7
- numcodecs/blosc.cp313-win_amd64.pyd,sha256=mghq6_0WSe5EOXopokX_OfKS-l250LvOEOG0lKGfFb8,605696
8
- numcodecs/bz2.py,sha256=bS0L4XqzJDw6pU4MUuEF8UgFOHw6mErnqCXZVg8TEiI,1219
9
- numcodecs/categorize.py,sha256=EZFF7KyjniCT3LzsitUS3DgJmcNWk1rguTLJemScgJY,3084
10
- numcodecs/checksum32.py,sha256=W_AV8HeZ2dxgWXMOThORmiFh7E1lmsKdkKCCXWvR-WQ,3252
11
- numcodecs/compat.py,sha256=Z_Ewy__2nayaih9IG-50E-a4_c5rLmYYmPZO26eiYJs,6721
12
- numcodecs/compat_ext.cp313-win_amd64.pyd,sha256=WhFIbAyV0nvcRxIaoLjVTF5frpwJ9ggOUeagFSnzBDI,33280
13
- numcodecs/delta.py,sha256=O24yAsM2kyugkew3VNH0BWptofzxc8PR-dM_wgiM1mI,2903
14
- numcodecs/fixedscaleoffset.py,sha256=tM3faGimeCC2hzjuyPZU7dfPrSXlIf8kU1rLADUFov0,4328
15
- numcodecs/fletcher32.cp313-win_amd64.pyd,sha256=HrABhSd5KpF2pQz_sMjMi3NW_9reUS9snygmPLn6n90,157696
16
- numcodecs/gzip.py,sha256=vPmEDJDkgW14icC-sGeQz1wDUqifhmRBC_B6V-vdEqY,1521
17
- numcodecs/jenkins.cp313-win_amd64.pyd,sha256=H93lr9A7TKguyDRPbGNXgzCxRyF-Ndk9sTKdOT_p92U,147456
18
- numcodecs/json.py,sha256=VtI1U1zEGotH56zVWnAA7UwKWso1Kukwyzy_mopVIgY,3462
19
- numcodecs/lz4.cp313-win_amd64.pyd,sha256=gR9YjIyb9lg_nsQKZzK6a0YQPzOzvCeW9k62Lll3m3k,71168
20
- numcodecs/lzma.py,sha256=hm-dqMUQnZUQlr3liiLZzbsL88EF4mAZ2U_AaZNNoRE,2204
21
- numcodecs/msgpacks.py,sha256=58AVf8VovnBaFaVakLU3dRHodLMsJUlMe6uVaYSwmfY,2697
22
- numcodecs/ndarray_like.py,sha256=J1ROL3NobRzLxU2M7R8yH4wINWdjaJoffzjjlJDETZo,1931
23
- numcodecs/packbits.py,sha256=CVF7ZB-jYF7Lni2kbKfkmpfTJRg2Cnu3eASatuuymyA,2116
24
- numcodecs/pcodec.py,sha256=RUwx3Q22e0JWOJ5RllLpM3CshxU1UKNRggQi0qIjVGs,3168
25
- numcodecs/pickles.py,sha256=MEyNRXM6dQC62LBc4X46q83ZSa6L3Ord5rFst3E7wvQ,1343
26
- numcodecs/quantize.py,sha256=6cRZolHGF_TToxuB5WhYz7XrirFS9exsr7nKwIzIv6Y,3137
27
- numcodecs/registry.py,sha256=ENrQpT28HUZ33iGf3KFAwfQOQYLtXjrV4BCkvpwcppg,1835
28
- numcodecs/shuffle.py,sha256=ty-NJ1bIgsErwmTyJtspSgrrJ4PspQjp6Hb-U2M17hY,1636
29
- numcodecs/version.py,sha256=ciZvwdy0HBZeRbI0COvEiydD_yAxHeUwQOeMGUovgCo,429
30
- numcodecs/vlen.cp313-win_amd64.pyd,sha256=7_MGqx2ZIQrif5CuAyY6MaR4NTpWERUN3ooYyoSU1eM,202240
31
- numcodecs/zfpy.py,sha256=2g_CMrfA8xO53AYjzrE3gOHzIgUF8eKX7rsS2KoKR0Y,3907
32
- numcodecs/zlib.py,sha256=C5TO2qRPyG6SY25lmB9qeFh6yr4IRAqHz0v4RaPvygE,1091
33
- numcodecs/zstd.cp313-win_amd64.pyd,sha256=K_51-oqynuPJFhH1Qk-vArjqFY2t_dylVq27iBbp2uM,448000
34
- numcodecs/tests/__init__.py,sha256=W7MDbDAXcjl7fVmolo3U_30rFkOCb6mWQ8vcByUpu8g,75
35
- numcodecs/tests/common.py,sha256=94e6AU1RBb-ipYNyInSuQxA67SIVNSdf3dxJVavrVfQ,12522
36
- numcodecs/tests/test_astype.py,sha256=m-l8k4q8jSZrIqviASKxYsaPzzuBG_Y4tUNlIigYbco,2441
37
- numcodecs/tests/test_base64.py,sha256=znf-cMk2JBW3vjcZu7CpC2b9wIiIzBPwfmHX_WlkZ1o,2396
38
- numcodecs/tests/test_bitround.py,sha256=mto8z-up4GBPOlEa9vC6pXTNrT0y1OG8Rn9NhUYwp8o,2439
39
- numcodecs/tests/test_blosc.py,sha256=EHokmQVkpXLhIEEhwhyIU2_7nVbSrBBcyZis3GuwZ5A,9143
40
- numcodecs/tests/test_bz2.py,sha256=iH9BPZ8wtXCEfq52RXOqQ9bmQsTMiy3uujIKNpi2Mqs,1955
41
- numcodecs/tests/test_categorize.py,sha256=wug4Im375r3nM1oTIrDVW5woZiZDCsp5uE1Fz6qwIkI,2843
42
- numcodecs/tests/test_checksum32.py,sha256=5PA8WBrG1TTsvZpFxIKh0XCu3ye6ZLsr1ksTyetZh9A,1529
43
- numcodecs/tests/test_compat.py,sha256=Gc0FlCjC42mqNilmVJwV4K487xw3TZQZL0-oZmgQ3_U,3725
44
- numcodecs/tests/test_delta.py,sha256=Bc1n9aIpqsU8BkX4GphbHjzQHcLRPs20igCFh1aYnrI,1630
45
- numcodecs/tests/test_entrypoints.py,sha256=poAHVnz9kThz2X1X2DTEw7J9xcCfPCjAqo4ZfQ8wcnw,530
46
- numcodecs/tests/test_entrypoints_backport.py,sha256=MNv1UlKWrwSxebSzID7YmiJhyM8NAW7e4sQz8YGyzJY,1076
47
- numcodecs/tests/test_fixedscaleoffset.py,sha256=3V1h0-8lu1vGzHyL3oijib3HVUgLG6fFAmmcWxE2prI,2316
48
- numcodecs/tests/test_fletcher32.py,sha256=J5ND8xcy4QQKYUYBaH_VyBzKm5biFoV9H5Fp9NsVe3s,1512
49
- numcodecs/tests/test_gzip.py,sha256=khoVo8QEV4edhsWBHzNk3Tk2xYOwQChddE_5vforF5M,3035
50
- numcodecs/tests/test_jenkins.py,sha256=h2VG0hFkf6umeUqoXna8cpn_XmdcDNv1sWOQJmk43jI,4596
51
- numcodecs/tests/test_json.py,sha256=IbWeFjPtSaCrYyvnwQmYG1nTP7siwYRNMdyV1cU1gF0,2373
52
- numcodecs/tests/test_lz4.py,sha256=pYCzUhI8o0LY1Jfj82EMIbPreZikBY1dB67GJqdZZn0,2436
53
- numcodecs/tests/test_lzma.py,sha256=4a7rgNAKj2wr_PsXS_W5WZcSZPUwteYUFJhAPyjH058,2725
54
- numcodecs/tests/test_msgpacks.py,sha256=3z3DDGLcznS6AxlysyylSo187wND6ISGPo8ZOd4Kdho,3957
55
- numcodecs/tests/test_ndarray_like.py,sha256=GXx-XTSKK8wGLlEeuvrgdFDQ3uGtV55-fKKjzN6G0gc,1321
56
- numcodecs/tests/test_packbits.py,sha256=UWXpYyaHLybqOHgZgVTP_5VeibGO09CyJyKSO_mTCeI,1028
57
- numcodecs/tests/test_pcodec.py,sha256=RGd-jmzi0LtfmJP4Q68Fk8Rxu1glwHCndpObWjwbfxQ,2108
58
- numcodecs/tests/test_pickles.py,sha256=zhmZPPiCgW3uFArYvixgiMPWXdmKjnCj0JThUDt8nn4,1740
59
- numcodecs/tests/test_quantize.py,sha256=muD4zwQSa4XM4jPO3qXu8rMdoU4eHCpVfQ8z0G7Zh-U,2227
60
- numcodecs/tests/test_registry.py,sha256=VJI2qPYVzUe3svD-fNFutNz246B2PT3QdvOjiFRowH0,1103
61
- numcodecs/tests/test_shuffle.py,sha256=WG0soC343hSszp0Gck4cOS9AIUqgTHea7GDfQPaBZJE,4865
62
- numcodecs/tests/test_vlen_array.py,sha256=sUwLaza31Yo0IMnmKCGykRPaB3ha7i0ImiCY9yvHS9o,2574
63
- numcodecs/tests/test_vlen_bytes.py,sha256=ujYHFkBn7EultxVkEepbmFriQfO_pJxfh7dEfTxCCco,2566
64
- numcodecs/tests/test_vlen_utf8.py,sha256=X0nBvLv1hVDHGz3pIRMP4rVs75lAkXGUb0cRcfZM1Ss,2565
65
- numcodecs/tests/test_zfpy.py,sha256=Eed6TeK1OrLKEs0AB-B5W5gfHiuytuv1VY8TDfgdPT4,2772
66
- numcodecs/tests/test_zlib.py,sha256=SxgYIyH2bH_eIX7k-9kgPUOXCHEllGPoLSUSn0Qk5rg,2633
67
- numcodecs/tests/test_zstd.py,sha256=P-wHnm0wOuclHOoX7danVEvufxKNM3GwYBgHBchzILE,2702
68
- numcodecs/tests/package_with_entrypoint/__init__.py,sha256=j0h1AHePXH8ONfd-TMGwKsMW4gBqbgiGOuGP25S9hLE,223
69
- numcodecs-0.13.1.dist-info/LICENSE.txt,sha256=IxxTq7WTy9_G9AbShWjbBcg6x2G3pDlJEIBJN2o95ks,1145
70
- numcodecs-0.13.1.dist-info/METADATA,sha256=ikUjWEtV6XcEM61bdnTIGwS6MwoW-gi19fUqojmrVPE,2997
71
- numcodecs-0.13.1.dist-info/WHEEL,sha256=WsITy9NjrxZo875xZQhJpU3vZUHVZRtNnEd5DMBQpxU,101
72
- numcodecs-0.13.1.dist-info/top_level.txt,sha256=JkHllzt6IuVudg4Tk--wF-yfPPsdVOiMTag1tjGIihw,10
73
- numcodecs/tests/package_with_entrypoint-0.1.dist-info/entry_points.txt,sha256=COk3sfJsTt3T00bA2bcUMCuWEhwkQvf4lPHcBDk34qA,62
74
- numcodecs-0.13.1.dist-info/RECORD,,