numcodecs 0.14.1__cp311-cp311-win_amd64.whl → 0.15.0__cp311-cp311-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 (41) hide show
  1. numcodecs/__init__.py +43 -46
  2. numcodecs/_shuffle.cp311-win_amd64.pyd +0 -0
  3. numcodecs/abc.py +1 -1
  4. numcodecs/astype.py +2 -6
  5. numcodecs/base64.py +1 -2
  6. numcodecs/blosc.cp311-win_amd64.pyd +0 -0
  7. numcodecs/categorize.py +7 -10
  8. numcodecs/compat_ext.cp311-win_amd64.pyd +0 -0
  9. numcodecs/delta.py +3 -10
  10. numcodecs/fixedscaleoffset.py +8 -10
  11. numcodecs/fletcher32.cp311-win_amd64.pyd +0 -0
  12. numcodecs/gzip.py +1 -3
  13. numcodecs/jenkins.cp311-win_amd64.pyd +0 -0
  14. numcodecs/json.py +11 -11
  15. numcodecs/lz4.cp311-win_amd64.pyd +0 -0
  16. numcodecs/lzma.py +1 -1
  17. numcodecs/msgpacks.py +6 -6
  18. numcodecs/ndarray_like.py +2 -2
  19. numcodecs/pcodec.py +59 -29
  20. numcodecs/pickles.py +1 -1
  21. numcodecs/quantize.py +7 -9
  22. numcodecs/registry.py +1 -1
  23. numcodecs/tests/common.py +3 -4
  24. numcodecs/tests/test_blosc.py +9 -11
  25. numcodecs/tests/test_lzma.py +1 -1
  26. numcodecs/tests/test_pcodec.py +18 -8
  27. numcodecs/tests/test_registry.py +2 -2
  28. numcodecs/tests/test_shuffle.py +2 -4
  29. numcodecs/tests/test_vlen_bytes.py +3 -0
  30. numcodecs/tests/test_zarr3.py +65 -37
  31. numcodecs/version.py +2 -2
  32. numcodecs/vlen.cp311-win_amd64.pyd +0 -0
  33. numcodecs/zarr3.py +44 -22
  34. numcodecs/zfpy.py +1 -1
  35. numcodecs/zstd.cp311-win_amd64.pyd +0 -0
  36. {numcodecs-0.14.1.dist-info → numcodecs-0.15.0.dist-info}/METADATA +4 -4
  37. {numcodecs-0.14.1.dist-info → numcodecs-0.15.0.dist-info}/RECORD +41 -41
  38. {numcodecs-0.14.1.dist-info → numcodecs-0.15.0.dist-info}/WHEEL +1 -1
  39. {numcodecs-0.14.1.dist-info → numcodecs-0.15.0.dist-info}/LICENSE.txt +0 -0
  40. {numcodecs-0.14.1.dist-info → numcodecs-0.15.0.dist-info}/entry_points.txt +0 -0
  41. {numcodecs-0.14.1.dist-info → numcodecs-0.15.0.dist-info}/top_level.txt +0 -0
@@ -1,11 +1,8 @@
1
1
  import numpy as np
2
2
  import pytest
3
3
 
4
- from numcodecs.pcodec import PCodec
5
-
6
4
  try:
7
- # initializing codec triggers ImportError
8
- PCodec()
5
+ from numcodecs.pcodec import PCodec
9
6
  except ImportError: # pragma: no cover
10
7
  pytest.skip("pcodec not available", allow_module_level=True)
11
8
 
@@ -23,8 +20,12 @@ codecs = [
23
20
  PCodec(level=1),
24
21
  PCodec(level=5),
25
22
  PCodec(level=9),
26
- PCodec(mode_spec='classic'),
23
+ PCodec(mode_spec="classic"),
27
24
  PCodec(equal_pages_up_to=300),
25
+ PCodec(delta_encoding_order=2),
26
+ PCodec(delta_spec="try_lookback"),
27
+ PCodec(delta_spec="none"),
28
+ PCodec(delta_spec="try_consecutive", delta_encoding_order=1),
28
29
  ]
29
30
 
30
31
 
@@ -56,15 +57,24 @@ def test_config():
56
57
  check_config(codec)
57
58
 
58
59
 
59
- def test_invalid_config_error():
60
- codec = PCodec(mode_spec='bogus')
60
+ @pytest.mark.parametrize("param", ["mode_spec", "delta_spec", "paging_spec"])
61
+ def test_invalid_config_error(param):
62
+ codec = PCodec(**{param: "bogus"})
63
+ with pytest.raises(ValueError):
64
+ check_encode_decode_array_to_bytes(arrays[0], codec)
65
+
66
+
67
+ def test_invalid_delta_encoding_combo():
68
+ codec = PCodec(delta_encoding_order=2, delta_spec="none")
61
69
  with pytest.raises(ValueError):
62
70
  check_encode_decode_array_to_bytes(arrays[0], codec)
63
71
 
64
72
 
65
73
  def test_repr():
66
74
  check_repr(
67
- "PCodec(delta_encoding_order=None, equal_pages_up_to=262144, level=3, mode_spec='auto')"
75
+ "PCodec(delta_encoding_order=None, delta_spec='auto',"
76
+ " equal_pages_up_to=262144, level=3, mode_spec='auto',"
77
+ " paging_spec='equal_pages_up_to')"
68
78
  )
69
79
 
70
80
 
@@ -26,7 +26,7 @@ def test_all_classes_registered():
26
26
 
27
27
  see #346 for more info
28
28
  """
29
- missing = set(
29
+ missing = {
30
30
  obj.codec_id
31
31
  for _, submod in inspect.getmembers(numcodecs, inspect.ismodule)
32
32
  for _, obj in inspect.getmembers(submod)
@@ -36,7 +36,7 @@ def test_all_classes_registered():
36
36
  and obj.codec_id not in numcodecs.registry.codec_registry
37
37
  and obj.codec_id is not None # remove `None`
38
38
  )
39
- )
39
+ }
40
40
 
41
41
  if missing:
42
42
  raise Exception(f"these codecs are missing: {missing}") # pragma: no cover
@@ -79,14 +79,12 @@ def test_eq():
79
79
 
80
80
  def _encode_worker(data):
81
81
  compressor = Shuffle()
82
- enc = compressor.encode(data)
83
- return enc
82
+ return compressor.encode(data)
84
83
 
85
84
 
86
85
  def _decode_worker(enc):
87
86
  compressor = Shuffle()
88
- data = compressor.decode(enc)
89
- return data
87
+ return compressor.decode(enc)
90
88
 
91
89
 
92
90
  @pytest.mark.parametrize('pool', [Pool, ThreadPool])
@@ -84,6 +84,9 @@ def test_decode_errors():
84
84
  codec.decode(enc, out=np.zeros(10, dtype='i4'))
85
85
 
86
86
 
87
+ # TODO: fix this test on GitHub actions somehow...
88
+ # See https://github.com/zarr-developers/numcodecs/issues/683
89
+ @pytest.mark.skip("Test is failing on GitHub actions.")
87
90
  def test_encode_none():
88
91
  a = np.array([b'foo', None, b'bar'], dtype=object)
89
92
  codec = VLenBytes()
@@ -66,17 +66,19 @@ def test_docstring(codec_class: type[numcodecs.zarr3._NumcodecsCodec]):
66
66
  numcodecs.zarr3.Shuffle,
67
67
  ],
68
68
  )
69
- def test_generic_codec_class(store: StorePath, codec_class: type[numcodecs.zarr3._NumcodecsCodec]):
69
+ def test_generic_compressor(
70
+ store: StorePath, codec_class: type[numcodecs.zarr3._NumcodecsBytesBytesCodec]
71
+ ):
70
72
  data = np.arange(0, 256, dtype="uint16").reshape((16, 16))
71
73
 
72
74
  with pytest.warns(UserWarning, match=EXPECTED_WARNING_STR):
73
- a = Array.create(
75
+ a = zarr.create_array(
74
76
  store / "generic",
75
77
  shape=data.shape,
76
- chunk_shape=(16, 16),
78
+ chunks=(16, 16),
77
79
  dtype=data.dtype,
78
80
  fill_value=0,
79
- codecs=[BytesCodec(), codec_class()],
81
+ compressors=[codec_class()],
80
82
  )
81
83
 
82
84
  a[:, :] = data.copy()
@@ -100,26 +102,25 @@ def test_generic_codec_class(store: StorePath, codec_class: type[numcodecs.zarr3
100
102
  )
101
103
  def test_generic_filter(
102
104
  store: StorePath,
103
- codec_class: type[numcodecs.zarr3._NumcodecsCodec],
105
+ codec_class: type[numcodecs.zarr3._NumcodecsArrayArrayCodec],
104
106
  codec_config: dict[str, JSON],
105
107
  ):
106
108
  data = np.linspace(0, 10, 256, dtype="float32").reshape((16, 16))
107
109
 
108
110
  with pytest.warns(UserWarning, match=EXPECTED_WARNING_STR):
109
- a = Array.create(
111
+ a = zarr.create_array(
110
112
  store / "generic",
111
113
  shape=data.shape,
112
- chunk_shape=(16, 16),
114
+ chunks=(16, 16),
113
115
  dtype=data.dtype,
114
116
  fill_value=0,
115
- codecs=[
117
+ filters=[
116
118
  codec_class(**codec_config),
117
- BytesCodec(),
118
119
  ],
119
120
  )
120
121
 
121
122
  a[:, :] = data.copy()
122
- a = Array.open(store / "generic")
123
+ a = zarr.open_array(store / "generic", mode="r")
123
124
  np.testing.assert_array_equal(data, a[:, :])
124
125
 
125
126
 
@@ -127,17 +128,17 @@ def test_generic_filter_bitround(store: StorePath):
127
128
  data = np.linspace(0, 1, 256, dtype="float32").reshape((16, 16))
128
129
 
129
130
  with pytest.warns(UserWarning, match=EXPECTED_WARNING_STR):
130
- a = Array.create(
131
+ a = zarr.create_array(
131
132
  store / "generic_bitround",
132
133
  shape=data.shape,
133
- chunk_shape=(16, 16),
134
+ chunks=(16, 16),
134
135
  dtype=data.dtype,
135
136
  fill_value=0,
136
- codecs=[numcodecs.zarr3.BitRound(keepbits=3), BytesCodec()],
137
+ filters=[numcodecs.zarr3.BitRound(keepbits=3)],
137
138
  )
138
139
 
139
140
  a[:, :] = data.copy()
140
- a = Array.open(store / "generic_bitround")
141
+ a = zarr.open_array(store / "generic_bitround", mode="r")
141
142
  assert np.allclose(data, a[:, :], atol=0.1)
142
143
 
143
144
 
@@ -145,17 +146,17 @@ def test_generic_filter_quantize(store: StorePath):
145
146
  data = np.linspace(0, 10, 256, dtype="float32").reshape((16, 16))
146
147
 
147
148
  with pytest.warns(UserWarning, match=EXPECTED_WARNING_STR):
148
- a = Array.create(
149
+ a = zarr.create_array(
149
150
  store / "generic_quantize",
150
151
  shape=data.shape,
151
- chunk_shape=(16, 16),
152
+ chunks=(16, 16),
152
153
  dtype=data.dtype,
153
154
  fill_value=0,
154
- codecs=[numcodecs.zarr3.Quantize(digits=3), BytesCodec()],
155
+ filters=[numcodecs.zarr3.Quantize(digits=3)],
155
156
  )
156
157
 
157
158
  a[:, :] = data.copy()
158
- a = Array.open(store / "generic_quantize")
159
+ a = zarr.open_array(store / "generic_quantize", mode="r")
159
160
  assert np.allclose(data, a[:, :], atol=0.001)
160
161
 
161
162
 
@@ -164,27 +165,27 @@ def test_generic_filter_packbits(store: StorePath):
164
165
  data[0:4, :] = True
165
166
 
166
167
  with pytest.warns(UserWarning, match=EXPECTED_WARNING_STR):
167
- a = Array.create(
168
+ a = zarr.create_array(
168
169
  store / "generic_packbits",
169
170
  shape=data.shape,
170
- chunk_shape=(16, 16),
171
+ chunks=(16, 16),
171
172
  dtype=data.dtype,
172
173
  fill_value=0,
173
- codecs=[numcodecs.zarr3.PackBits(), BytesCodec()],
174
+ filters=[numcodecs.zarr3.PackBits()],
174
175
  )
175
176
 
176
177
  a[:, :] = data.copy()
177
- a = Array.open(store / "generic_packbits")
178
+ a = zarr.open_array(store / "generic_packbits", mode="r")
178
179
  np.testing.assert_array_equal(data, a[:, :])
179
180
 
180
181
  with pytest.raises(ValueError, match=".*requires bool dtype.*"):
181
- Array.create(
182
+ zarr.create_array(
182
183
  store / "generic_packbits_err",
183
184
  shape=data.shape,
184
- chunk_shape=(16, 16),
185
+ chunks=(16, 16),
185
186
  dtype="uint32",
186
187
  fill_value=0,
187
- codecs=[numcodecs.zarr3.PackBits(), BytesCodec()],
188
+ filters=[numcodecs.zarr3.PackBits()],
188
189
  )
189
190
 
190
191
 
@@ -198,26 +199,30 @@ def test_generic_filter_packbits(store: StorePath):
198
199
  numcodecs.zarr3.JenkinsLookup3,
199
200
  ],
200
201
  )
201
- def test_generic_checksum(store: StorePath, codec_class: type[numcodecs.zarr3._NumcodecsCodec]):
202
+ def test_generic_checksum(
203
+ store: StorePath, codec_class: type[numcodecs.zarr3._NumcodecsBytesBytesCodec]
204
+ ):
202
205
  data = np.linspace(0, 10, 256, dtype="float32").reshape((16, 16))
203
206
 
204
207
  with pytest.warns(UserWarning, match=EXPECTED_WARNING_STR):
205
- a = Array.create(
208
+ a = zarr.create_array(
206
209
  store / "generic_checksum",
207
210
  shape=data.shape,
208
- chunk_shape=(16, 16),
211
+ chunks=(16, 16),
209
212
  dtype=data.dtype,
210
213
  fill_value=0,
211
- codecs=[BytesCodec(), codec_class()],
214
+ compressors=[codec_class()],
212
215
  )
213
216
 
214
217
  a[:, :] = data.copy()
215
- a = Array.open(store / "generic_checksum")
218
+ a = zarr.open_array(store / "generic_checksum", mode="r")
216
219
  np.testing.assert_array_equal(data, a[:, :])
217
220
 
218
221
 
219
222
  @pytest.mark.parametrize("codec_class", [numcodecs.zarr3.PCodec, numcodecs.zarr3.ZFPY])
220
- def test_generic_bytes_codec(store: StorePath, codec_class: type[numcodecs.zarr3._NumcodecsCodec]):
223
+ def test_generic_bytes_codec(
224
+ store: StorePath, codec_class: type[numcodecs.zarr3._NumcodecsArrayBytesCodec]
225
+ ):
221
226
  try:
222
227
  codec_class()._codec # noqa: B018
223
228
  except ValueError as e:
@@ -225,22 +230,45 @@ def test_generic_bytes_codec(store: StorePath, codec_class: type[numcodecs.zarr3
225
230
  pytest.xfail(f"{codec_class.codec_name} is not available: {e}")
226
231
  else:
227
232
  raise # pragma: no cover
228
- except ImportError as e:
233
+ except ImportError as e: # pragma: no cover
229
234
  pytest.xfail(f"{codec_class.codec_name} is not available: {e}")
230
235
 
231
236
  data = np.arange(0, 256, dtype="float32").reshape((16, 16))
232
237
 
233
238
  with pytest.warns(UserWarning, match=EXPECTED_WARNING_STR):
234
- a = Array.create(
239
+ a = zarr.create_array(
235
240
  store / "generic",
236
241
  shape=data.shape,
237
- chunk_shape=(16, 16),
242
+ chunks=(16, 16),
238
243
  dtype=data.dtype,
239
244
  fill_value=0,
240
- codecs=[
241
- codec_class(),
242
- ],
245
+ serializer=codec_class(),
243
246
  )
244
247
 
245
248
  a[:, :] = data.copy()
246
249
  np.testing.assert_array_equal(data, a[:, :])
250
+
251
+
252
+ def test_delta_astype(store: StorePath):
253
+ data = np.linspace(0, 10, 256, dtype="i8").reshape((16, 16))
254
+
255
+ with pytest.warns(UserWarning, match=EXPECTED_WARNING_STR):
256
+ a = zarr.create_array(
257
+ store / "generic",
258
+ shape=data.shape,
259
+ chunks=(16, 16),
260
+ dtype=data.dtype,
261
+ fill_value=0,
262
+ filters=[
263
+ numcodecs.zarr3.Delta(dtype="i8", astype="i2"), # type: ignore[arg-type]
264
+ ],
265
+ )
266
+
267
+ a[:, :] = data.copy()
268
+ a = zarr.open_array(store / "generic", mode="r")
269
+ np.testing.assert_array_equal(data, a[:, :])
270
+
271
+
272
+ def test_repr():
273
+ codec = numcodecs.zarr3.LZ4(level=5)
274
+ assert repr(codec) == "LZ4(codec_name='numcodecs.lz4', codec_config={'level': 5})"
numcodecs/version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.14.1'
16
- __version_tuple__ = version_tuple = (0, 14, 1)
15
+ __version__ = version = '0.15.0'
16
+ __version_tuple__ = version_tuple = (0, 15, 0)
Binary file
numcodecs/zarr3.py CHANGED
@@ -8,12 +8,13 @@ You can use codecs from :py:mod:`numcodecs` by constructing codecs from :py:mod:
8
8
  >>> import zarr
9
9
  >>> import numcodecs.zarr3
10
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),
11
+ >>> array = zarr.create_array(
12
+ ... store="data.zarr",
13
+ ... shape=(1024, 1024),
14
+ ... chunks=(64, 64),
15
15
  ... dtype="uint32",
16
- ... codecs=codecs)
16
+ ... filters=[numcodecs.zarr3.Delta()],
17
+ ... compressors=[numcodecs.zarr3.BZ2(level=5)])
17
18
  >>> array[:] = np.arange(*array.shape).astype(array.dtype)
18
19
 
19
20
  .. note::
@@ -40,8 +41,10 @@ try:
40
41
 
41
42
  if zarr.__version__ < "3.0.0": # pragma: no cover
42
43
  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.")
44
+ except ImportError as e: # pragma: no cover
45
+ raise ImportError(
46
+ "zarr 3.0.0 or later is required to use the numcodecs zarr integration."
47
+ ) from e
45
48
 
46
49
  from zarr.abc.codec import ArrayArrayCodec, ArrayBytesCodec, BytesBytesCodec
47
50
  from zarr.abc.metadata import Metadata
@@ -95,6 +98,7 @@ class _NumcodecsCodec(Metadata):
95
98
  "Numcodecs codecs are not in the Zarr version 3 specification and "
96
99
  "may not be supported by other zarr implementations.",
97
100
  category=UserWarning,
101
+ stacklevel=2,
98
102
  )
99
103
 
100
104
  @cached_property
@@ -116,6 +120,12 @@ class _NumcodecsCodec(Metadata):
116
120
  def compute_encoded_size(self, input_byte_length: int, chunk_spec: ArraySpec) -> int:
117
121
  raise NotImplementedError # pragma: no cover
118
122
 
123
+ # Override __repr__ because dynamically constructed classes don't seem to work otherwise
124
+ def __repr__(self) -> str:
125
+ codec_config = self.codec_config.copy()
126
+ codec_config.pop("id", None)
127
+ return f"{self.__class__.__name__}(codec_name={self.codec_name!r}, codec_config={codec_config!r})"
128
+
119
129
 
120
130
  class _NumcodecsBytesBytesCodec(_NumcodecsCodec, BytesBytesCodec):
121
131
  def __init__(self, **codec_config: JSON) -> None:
@@ -266,7 +276,19 @@ class Shuffle(_NumcodecsBytesBytesCodec):
266
276
 
267
277
 
268
278
  # array-to-array codecs ("filters")
269
- Delta = _add_docstring(_make_array_array_codec("delta", "Delta"), "numcodecs.delta.Delta")
279
+ @_add_docstring_wrapper("numcodecs.delta.Delta")
280
+ class Delta(_NumcodecsArrayArrayCodec):
281
+ codec_name = f"{CODEC_PREFIX}delta"
282
+
283
+ def __init__(self, **codec_config: dict[str, JSON]) -> None:
284
+ super().__init__(**codec_config)
285
+
286
+ def resolve_metadata(self, chunk_spec: ArraySpec) -> ArraySpec:
287
+ if astype := self.codec_config.get("astype"):
288
+ return replace(chunk_spec, dtype=np.dtype(astype)) # type: ignore[arg-type]
289
+ return chunk_spec
290
+
291
+
270
292
  BitRound = _add_docstring(
271
293
  _make_array_array_codec("bitround", "BitRound"), "numcodecs.bitround.BitRound"
272
294
  )
@@ -355,25 +377,25 @@ PCodec = _add_docstring(_make_array_bytes_codec("pcodec", "PCodec"), "numcodecs.
355
377
  ZFPY = _add_docstring(_make_array_bytes_codec("zfpy", "ZFPY"), "numcodecs.zfpy.ZFPY")
356
378
 
357
379
  __all__ = [
358
- "Blosc",
359
- "LZ4",
360
- "Zstd",
361
- "Zlib",
362
- "GZip",
363
380
  "BZ2",
364
- "LZMA",
365
- "Shuffle",
366
- "Delta",
367
- "BitRound",
368
- "FixedScaleOffset",
369
- "Quantize",
370
- "PackBits",
371
- "AsType",
372
381
  "CRC32",
373
382
  "CRC32C",
383
+ "LZ4",
384
+ "LZMA",
385
+ "ZFPY",
374
386
  "Adler32",
387
+ "AsType",
388
+ "BitRound",
389
+ "Blosc",
390
+ "Delta",
391
+ "FixedScaleOffset",
375
392
  "Fletcher32",
393
+ "GZip",
376
394
  "JenkinsLookup3",
377
395
  "PCodec",
378
- "ZFPY",
396
+ "PackBits",
397
+ "Quantize",
398
+ "Shuffle",
399
+ "Zlib",
400
+ "Zstd",
379
401
  ]
numcodecs/zfpy.py CHANGED
@@ -13,7 +13,7 @@ with suppress(PackageNotFoundError):
13
13
  if _zfpy_version:
14
14
  # Check NumPy version
15
15
  _numpy_version: tuple = tuple(map(int, version("numpy").split('.')))
16
- if _numpy_version >= (2, 0, 0) and _zfpy_version <= (1, 0, 1): # pragma: no cover
16
+ if _numpy_version >= (2, 0, 0) and _zfpy_version < (1, 0, 1): # pragma: no cover
17
17
  _zfpy_version = ()
18
18
  warnings.warn(
19
19
  "NumPy version >= 2.0.0 detected. The zfpy library is incompatible with this version of NumPy. "
Binary file
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: numcodecs
3
- Version: 0.14.1
3
+ Version: 0.15.0
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
@@ -22,6 +22,7 @@ Requires-Python: >=3.11
22
22
  Description-Content-Type: text/x-rst
23
23
  License-File: LICENSE.txt
24
24
  Requires-Dist: numpy>=1.24
25
+ Requires-Dist: deprecated
25
26
  Provides-Extra: docs
26
27
  Requires-Dist: sphinx; extra == "docs"
27
28
  Requires-Dist: sphinx-issues; extra == "docs"
@@ -37,9 +38,8 @@ Provides-Extra: msgpack
37
38
  Requires-Dist: msgpack; extra == "msgpack"
38
39
  Provides-Extra: zfpy
39
40
  Requires-Dist: zfpy>=1.0.0; extra == "zfpy"
40
- Requires-Dist: numpy<2.0.0; extra == "zfpy"
41
41
  Provides-Extra: pcodec
42
- Requires-Dist: pcodec<0.3,>=0.2; extra == "pcodec"
42
+ Requires-Dist: pcodec<0.4,>=0.3; extra == "pcodec"
43
43
  Provides-Extra: crc32c
44
44
  Requires-Dist: crc32c>=2.7; extra == "crc32c"
45
45
 
@@ -1,43 +1,43 @@
1
- numcodecs/__init__.py,sha256=9uLJwNm76SSqG2wkqlSocbuGZmsaR-e2ZB1Z6Bl1JiE,3426
2
- numcodecs/_shuffle.cp311-win_amd64.pyd,sha256=KN9m0BXNdKzIqu7DvUHYTqq8NlHqxuFsc_BYS73cJsE,133632
3
- numcodecs/abc.py,sha256=t_l-aLoyocVHk0pYEPjfcRlctzLeDY2wNyCIr-yCEHk,4632
4
- numcodecs/astype.py,sha256=py0m2RrDdDjvEORxWNXaarBE2xKdCkjNWeMf6GCoLg4,2213
5
- numcodecs/base64.py,sha256=E9166xLd0qzo9IZGb3PdP2jENITahjeD6krbochvBX8,811
1
+ numcodecs/__init__.py,sha256=IdxAMSfHMK0HLqtxa_vUKy2nUHXxCgojJJRsCzXc6SQ,3249
2
+ numcodecs/_shuffle.cp311-win_amd64.pyd,sha256=HAqV8xXVNwfrX6bITfbkM3aWkHyQSLfKZQt6loWv_Tc,133632
3
+ numcodecs/abc.py,sha256=WWOjzavsAAcAxu-POPfiojYFfl94u9xE4RWAcRdRCbw,4631
4
+ numcodecs/astype.py,sha256=ZoI9ev-r2Q5Xw7NZN1xoZ9tYhq80XoeL-F15KfJhDIA,2171
5
+ numcodecs/base64.py,sha256=Da-KRfgXZ5j5Dn5AjidclQp9BXcAdx_ZR_a60FzFPWQ,778
6
6
  numcodecs/bitround.py,sha256=m9gysWTzZH_MA0H7oI3dfBIZh66yxHM4gik8aq6xA_0,2925
7
- numcodecs/blosc.cp311-win_amd64.pyd,sha256=cd-AYZNLnH0MzytXgptdo12jl6SVMYEDLBo8eQHYvGo,613376
7
+ numcodecs/blosc.cp311-win_amd64.pyd,sha256=an5gi1Ybt29OBLiCUbQDxfnAofJhOHgZhEdyWKaF-V8,619008
8
8
  numcodecs/bz2.py,sha256=bS0L4XqzJDw6pU4MUuEF8UgFOHw6mErnqCXZVg8TEiI,1219
9
- numcodecs/categorize.py,sha256=EZFF7KyjniCT3LzsitUS3DgJmcNWk1rguTLJemScgJY,3084
9
+ numcodecs/categorize.py,sha256=jwx8H_EXMEY3CSSWjYt5wzoduFwv-44v_Kjqxe-jo4Q,3046
10
10
  numcodecs/checksum32.py,sha256=GgYbg84gGAH9Jq-ZwATsL6G-bDXI20LQ1gHXg75oh-E,5605
11
11
  numcodecs/compat.py,sha256=ghz0-UpxV0q_mAaiZLZv6BBhJNNLeLTDGirO4Oda_ZM,6711
12
- numcodecs/compat_ext.cp311-win_amd64.pyd,sha256=7he7qEUGcZe76xVuVo09fzuz3KZqTOlRdzzRiBDs3oA,35328
13
- numcodecs/delta.py,sha256=nb4KlQULJXXXfbw30W2y3h4g_FPJsh7gVikRTNrr7pQ,3085
14
- numcodecs/fixedscaleoffset.py,sha256=tM3faGimeCC2hzjuyPZU7dfPrSXlIf8kU1rLADUFov0,4328
15
- numcodecs/fletcher32.cp311-win_amd64.pyd,sha256=HRPT70Lh3KgF_IZAdF5wXuSq8CMUsCzvJodSwkf-Qs4,155136
16
- numcodecs/gzip.py,sha256=vPmEDJDkgW14icC-sGeQz1wDUqifhmRBC_B6V-vdEqY,1521
17
- numcodecs/jenkins.cp311-win_amd64.pyd,sha256=aWJSRKLS8Kkg-l9fQY5QZQw9QImI3UvcfY_-RgVQtC4,144384
18
- numcodecs/json.py,sha256=VtI1U1zEGotH56zVWnAA7UwKWso1Kukwyzy_mopVIgY,3462
19
- numcodecs/lz4.cp311-win_amd64.pyd,sha256=Bhff0Uo1Bhi00J0xYC8CCMSSQFWK1Rv3P28QW0ELnGc,73216
20
- numcodecs/lzma.py,sha256=7rF9ukBOyYWoZ8pf-qdRF7BVjuT5rggrfErW8ogfgTA,2313
21
- numcodecs/msgpacks.py,sha256=58AVf8VovnBaFaVakLU3dRHodLMsJUlMe6uVaYSwmfY,2697
22
- numcodecs/ndarray_like.py,sha256=CRUhXM5bImhOdY1Gsehy6vzj7-XwobO15WkbOdC4lMo,1961
12
+ numcodecs/compat_ext.cp311-win_amd64.pyd,sha256=E8F4cGVP5_gw_CAeIV4o1MlItxYWMlgRyVWOE0hxEY0,35328
13
+ numcodecs/delta.py,sha256=cSU6M1hT6q_ZNdyW3zkbcPsyviZsc9OJ5nZLBOpnwxc,2885
14
+ numcodecs/fixedscaleoffset.py,sha256=mjIakyHT5cY38o7gE-9f99SjPJRVAxYkyOJ0h9OnyKE,4318
15
+ numcodecs/fletcher32.cp311-win_amd64.pyd,sha256=tv5Q8UXE5xio9f_A9PHC0KCQkjz035W4qUC3wNp8UWo,155136
16
+ numcodecs/gzip.py,sha256=w7TpS4sorX36J7L4Izs8BszU7ZH-Mks455Ai-QHWZrs,1486
17
+ numcodecs/jenkins.cp311-win_amd64.pyd,sha256=dKxYCPujbYCB7INTjfcxYZo4OWXF7BZImGKj0WrVsOE,144384
18
+ numcodecs/json.py,sha256=kJUuyQTZEdgWx2c_AbIyy0l_6_hxY3USlJBEwN_KJMQ,3480
19
+ numcodecs/lz4.cp311-win_amd64.pyd,sha256=B5YBT2vjA7yoZFWdCROoW2at6ErsoAQ0Qi4_owAxwSY,73216
20
+ numcodecs/lzma.py,sha256=N01IBcCZKiMS0fPB75157inIhuZkVNFcW3Xf96mmWJ8,2329
21
+ numcodecs/msgpacks.py,sha256=a6do5fvFqnSXOadxajtw-uq7UdcUsWUY-hTDv8HCx08,2705
22
+ numcodecs/ndarray_like.py,sha256=M6n00SC1h_SgN0enXClkKMFeE4z-AewLAYVbq56Vl2A,1948
23
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
24
+ numcodecs/pcodec.py,sha256=aelmvP2ejs1F29GvANUpwlANRmRWhhO2BoJ2GuBOWcs,4832
25
+ numcodecs/pickles.py,sha256=Yh8hCg-ETdLWM5MjCy5vPW8E8_3DCjyvOPoKtvbr1ZU,1345
26
+ numcodecs/quantize.py,sha256=nCw95w0SvxTK7bQvQFP6miXEj4vd7W9Aq0EOETY-Ka8,3124
27
+ numcodecs/registry.py,sha256=bZYMXgC088Gntg9BoWw2f_rhZZ0OsIfrVVSmYc3F42E,1904
28
28
  numcodecs/shuffle.py,sha256=ty-NJ1bIgsErwmTyJtspSgrrJ4PspQjp6Hb-U2M17hY,1636
29
- numcodecs/version.py,sha256=PmPMi-W0oYwFnGNPqq2XLCoXtDYpahw_1xhTDJEKPu8,429
30
- numcodecs/vlen.cp311-win_amd64.pyd,sha256=DLR7o7rfF1lv5JiNiTwSgDVesfJVTxTh62jOsl3unTs,200192
31
- numcodecs/zarr3.py,sha256=ZNGFTV9Kqx7ZdK0PWw5QYPPGGrob4GLO_PcK87m6ZEk,14327
32
- numcodecs/zfpy.py,sha256=BBzbxbAfu7QnFgowD-zTcWYFQzso34MA6BsOn2QA5lg,4014
29
+ numcodecs/version.py,sha256=nkdvnJ28MNIzWCtqvltlp6BtJSc4ocdp8PNbZSy6BJg,429
30
+ numcodecs/vlen.cp311-win_amd64.pyd,sha256=rZPLog77YjkzusC89IK9WEJrXEcJpIi0ahQV-tqq1tM,200192
31
+ numcodecs/zarr3.py,sha256=Z6lJ6UL7q5Xr-7TZmAPSL1mhQ5vWfezgBh7N2603GHw,15113
32
+ numcodecs/zfpy.py,sha256=SP6zPdXwSrZzu_iuudoSZGBuE6IvXWdvJri1fgz-4nY,4013
33
33
  numcodecs/zlib.py,sha256=C5TO2qRPyG6SY25lmB9qeFh6yr4IRAqHz0v4RaPvygE,1091
34
- numcodecs/zstd.cp311-win_amd64.pyd,sha256=Htdw6z22SbunW-ZMpDzWwy9FKqg2mpDjDeStwOEDEsY,451584
34
+ numcodecs/zstd.cp311-win_amd64.pyd,sha256=AOIykDHuuCvfBUES05_9-tN1NZUnndz2i2MMW7Qegjc,451584
35
35
  numcodecs/tests/__init__.py,sha256=W7MDbDAXcjl7fVmolo3U_30rFkOCb6mWQ8vcByUpu8g,75
36
- numcodecs/tests/common.py,sha256=94e6AU1RBb-ipYNyInSuQxA67SIVNSdf3dxJVavrVfQ,12522
36
+ numcodecs/tests/common.py,sha256=jxox32_wMnqwiBi6Ibz32-5lDXtlOaMVq5B-CUgtAbc,12537
37
37
  numcodecs/tests/test_astype.py,sha256=m-l8k4q8jSZrIqviASKxYsaPzzuBG_Y4tUNlIigYbco,2441
38
38
  numcodecs/tests/test_base64.py,sha256=znf-cMk2JBW3vjcZu7CpC2b9wIiIzBPwfmHX_WlkZ1o,2396
39
39
  numcodecs/tests/test_bitround.py,sha256=idosc7MlWLWoA93jFFPgfKk1WzazmaLqH3gzCsVV0F0,2430
40
- numcodecs/tests/test_blosc.py,sha256=xdmN2nKRbiqJ3xEDB9USCsZau1xagoRgeCwg2mKrOxM,9143
40
+ numcodecs/tests/test_blosc.py,sha256=PwvxL1d0bI8VY5KFUKuwyL5A2QqpwUbhJSma4V_w5KY,9129
41
41
  numcodecs/tests/test_bz2.py,sha256=iH9BPZ8wtXCEfq52RXOqQ9bmQsTMiy3uujIKNpi2Mqs,1955
42
42
  numcodecs/tests/test_categorize.py,sha256=wug4Im375r3nM1oTIrDVW5woZiZDCsp5uE1Fz6qwIkI,2843
43
43
  numcodecs/tests/test_checksum32.py,sha256=1ZbJrUXPFAPZdmKYso0u0lHBUBtdyA-mfiQdmXRqdqs,4755
@@ -51,28 +51,28 @@ numcodecs/tests/test_gzip.py,sha256=khoVo8QEV4edhsWBHzNk3Tk2xYOwQChddE_5vforF5M,
51
51
  numcodecs/tests/test_jenkins.py,sha256=h2VG0hFkf6umeUqoXna8cpn_XmdcDNv1sWOQJmk43jI,4596
52
52
  numcodecs/tests/test_json.py,sha256=OVU-k1OXRnb8FlwOm2wkDaiBhs_XC_sr4YSS4qNVnT0,2377
53
53
  numcodecs/tests/test_lz4.py,sha256=pYCzUhI8o0LY1Jfj82EMIbPreZikBY1dB67GJqdZZn0,2436
54
- numcodecs/tests/test_lzma.py,sha256=6-qar7FrAu9dgvWxiiVVHPSszT_xHWZ2N7g0pnNpl4U,2815
54
+ numcodecs/tests/test_lzma.py,sha256=i1Lup9rWjehmfcyv1LSltJhwp53NUqgQXMV6Y-ElD-E,2817
55
55
  numcodecs/tests/test_msgpacks.py,sha256=97mj-y_xOxfW-aZwXoj85_cswuCN1DqRpYoTSFBn2PA,4076
56
56
  numcodecs/tests/test_ndarray_like.py,sha256=GXx-XTSKK8wGLlEeuvrgdFDQ3uGtV55-fKKjzN6G0gc,1321
57
57
  numcodecs/tests/test_packbits.py,sha256=UWXpYyaHLybqOHgZgVTP_5VeibGO09CyJyKSO_mTCeI,1028
58
- numcodecs/tests/test_pcodec.py,sha256=01L2OyQKUx42mNHR7l0PzJX5MJwWodKyucmpokFlvwE,2104
58
+ numcodecs/tests/test_pcodec.py,sha256=_CO8siS_90LNlhmH9ln0o-lraoptpL_T7dFZ5yK7aJY,2590
59
59
  numcodecs/tests/test_pickles.py,sha256=zhmZPPiCgW3uFArYvixgiMPWXdmKjnCj0JThUDt8nn4,1740
60
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
61
+ numcodecs/tests/test_registry.py,sha256=ZtECBmhlz_cxeDMalxAejImocdSjbz0dAxfb84ijlto,1091
62
+ numcodecs/tests/test_shuffle.py,sha256=25AOv67ip0EroQyufgWZXPYueA4p4HZcctwTTFeT5Q0,4825
63
63
  numcodecs/tests/test_vlen_array.py,sha256=sUwLaza31Yo0IMnmKCGykRPaB3ha7i0ImiCY9yvHS9o,2574
64
- numcodecs/tests/test_vlen_bytes.py,sha256=ujYHFkBn7EultxVkEepbmFriQfO_pJxfh7dEfTxCCco,2566
64
+ numcodecs/tests/test_vlen_bytes.py,sha256=--iq7kzkb-ynZQHRAbIInaezjBNW2H26v3kLmGnzyeM,2738
65
65
  numcodecs/tests/test_vlen_utf8.py,sha256=X0nBvLv1hVDHGz3pIRMP4rVs75lAkXGUb0cRcfZM1Ss,2565
66
- numcodecs/tests/test_zarr3.py,sha256=dK2O5b0IHNYAWaLGOydn6YvbtAEozTupXDDoxoih76Y,7784
66
+ numcodecs/tests/test_zarr3.py,sha256=jwhMOwIlQ-IGgdsg6OuhkbfXDQMgy38hr2FDTqvBVaQ,8607
67
67
  numcodecs/tests/test_zarr3_import.py,sha256=enI8IqSnTynihEQ2mh95UdTZ5Gb8m9Wock6gbg3iLYs,345
68
68
  numcodecs/tests/test_zfpy.py,sha256=lSkKcpGg437poMRQ88EDYdbQVIqKmF0Il-ASdlYkkIY,2866
69
69
  numcodecs/tests/test_zlib.py,sha256=SxgYIyH2bH_eIX7k-9kgPUOXCHEllGPoLSUSn0Qk5rg,2633
70
70
  numcodecs/tests/test_zstd.py,sha256=P-wHnm0wOuclHOoX7danVEvufxKNM3GwYBgHBchzILE,2702
71
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=nkBcd8Ko0v5sEcSagm2-x_RVrb8gBSkTa8VFFZ0Mr1o,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
72
+ numcodecs-0.15.0.dist-info/LICENSE.txt,sha256=IxxTq7WTy9_G9AbShWjbBcg6x2G3pDlJEIBJN2o95ks,1145
73
+ numcodecs-0.15.0.dist-info/METADATA,sha256=7xOjjdiTT70nU8TtwA8rlKC-cIHw_XDMTtpTmJCEGcY,2999
74
+ numcodecs-0.15.0.dist-info/WHEEL,sha256=yNnHoQL2GZYIUXm9YvoaBpFjGlUoK9qq9oqYeudrWlE,101
75
+ numcodecs-0.15.0.dist-info/entry_points.txt,sha256=3W3FHKrwE52X3fLq8KdioOtf93lh5KaoGV5t2D10DBI,919
76
+ numcodecs-0.15.0.dist-info/top_level.txt,sha256=JkHllzt6IuVudg4Tk--wF-yfPPsdVOiMTag1tjGIihw,10
77
77
  numcodecs/tests/package_with_entrypoint-0.1.dist-info/entry_points.txt,sha256=COk3sfJsTt3T00bA2bcUMCuWEhwkQvf4lPHcBDk34qA,62
78
- numcodecs-0.14.1.dist-info/RECORD,,
78
+ numcodecs-0.15.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-cp311-win_amd64
5
5