wavpack-numcodecs 0.3.0__tar.gz → 0.3.1__tar.gz

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.
Files changed (45) hide show
  1. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/PKG-INFO +1 -1
  2. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/pyproject.toml +1 -1
  3. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/wavpackv3.py +4 -3
  4. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs.egg-info/PKG-INFO +1 -1
  5. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/tests/test_wavpack_codec.py +20 -0
  6. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/LICENSE +0 -0
  7. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/README.md +0 -0
  8. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/setup.cfg +0 -0
  9. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/setup.py +0 -0
  10. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/__init__.py +0 -0
  11. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/compat_ext.c +0 -0
  12. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/compat_ext.pxd +0 -0
  13. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/compat_ext.pyx +0 -0
  14. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/globals.py +0 -0
  15. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/include/wavpack/wavpack.h +0 -0
  16. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.6.0/linux-x86_64-glibc2.35/libwavpack.so +0 -0
  17. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_32/wavpackdll.dll +0 -0
  18. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_32/wavpackdll.lib +0 -0
  19. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_64/wavpackdll.dll +0 -0
  20. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_64/wavpackdll.lib +0 -0
  21. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.7.0/linux-x86_64-glibc2.31/libwavpack.so +0 -0
  22. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.7.0/linux-x86_64-glibc2.35/libwavpack.so +0 -0
  23. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.7.0/linux-x86_64-glibc2.39/libwavpack.so +0 -0
  24. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_32/wavpackdll.dll +0 -0
  25. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_32/wavpackdll.lib +0 -0
  26. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_64/wavpackdll.dll +0 -0
  27. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_64/wavpackdll.lib +0 -0
  28. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.8.0/linux-x86_64-glibc2.35/libwavpack.so +0 -0
  29. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.8.0/linux-x86_64-glibc2.39/libwavpack.so +0 -0
  30. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.8.0/linux-x86_64-glibc2.39/libwavpack.so.1 +0 -0
  31. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_32/wavpackdll.dll +0 -0
  32. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_32/wavpackdll.lib +0 -0
  33. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_64/wavpackdll.dll +0 -0
  34. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_64/wavpackdll.lib +0 -0
  35. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/libwavpack.so.1 +0 -0
  36. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/src/decoder.c +0 -0
  37. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/src/encoder.c +0 -0
  38. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/wavpack.c +0 -0
  39. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs/wavpack.pyx +0 -0
  40. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs.egg-info/SOURCES.txt +0 -0
  41. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs.egg-info/dependency_links.txt +0 -0
  42. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs.egg-info/entry_points.txt +0 -0
  43. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs.egg-info/requires.txt +0 -0
  44. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/src/wavpack_numcodecs.egg-info/top_level.txt +0 -0
  45. {wavpack_numcodecs-0.3.0 → wavpack_numcodecs-0.3.1}/tests/test_imports.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wavpack-numcodecs
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: Numcodecs implementation of WavPack audio codec.
5
5
  Author-email: Alessio Buccino <alessiop.buccino@gmail.com>, David Bryant <david@wavpack.com>
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "wavpack-numcodecs"
3
- version = "0.3.0"
3
+ version = "0.3.1"
4
4
  description = "Numcodecs implementation of WavPack audio codec."
5
5
  authors = [
6
6
  {name = "Alessio Buccino", email = "alessiop.buccino@gmail.com"},
@@ -1,5 +1,5 @@
1
1
  from zarr.abc.codec import ArrayBytesCodec
2
- from zarr.core.buffer import Buffer, BufferPrototype
2
+ from zarr.core.buffer import Buffer, BufferPrototype, NDBuffer
3
3
  from zarr.core.common import BytesLike
4
4
  from wavpack_numcodecs.wavpack import WavPack as WavPackV2
5
5
  import numpy as np
@@ -53,7 +53,7 @@ class WavPack(ArrayBytesCodec):
53
53
  self,
54
54
  chunk_bytes: Buffer,
55
55
  chunk_spec: "ArraySpec",
56
- ) -> np.ndarray:
56
+ ) -> NDBuffer:
57
57
  """Decode a single chunk."""
58
58
  decoded = await asyncio.to_thread(self._codec.decode, chunk_bytes.to_bytes())
59
59
 
@@ -64,7 +64,8 @@ class WavPack(ArrayBytesCodec):
64
64
 
65
65
  # Ensure it's a numpy array with correct shape
66
66
  if isinstance(decoded, np.ndarray):
67
- return decoded.reshape(chunk_spec.shape)
67
+ # zarr merges partial chunk writes into an NDBuffer, not a plain ndarray
68
+ return chunk_spec.prototype.nd_buffer.from_ndarray_like(decoded.reshape(chunk_spec.shape))
68
69
  else:
69
70
  raise TypeError(f"Expected numpy array from decode, got {type(decoded)}")
70
71
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wavpack-numcodecs
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: Numcodecs implementation of WavPack audio codec.
5
5
  Author-email: Alessio Buccino <alessiop.buccino@gmail.com>, David Bryant <david@wavpack.com>
6
6
  License: MIT
@@ -301,6 +301,26 @@ def test_wavpack_zarr_v3(generate_test_data, bps, dtype):
301
301
  np.testing.assert_array_equal(z[:], test_sig)
302
302
 
303
303
 
304
+
305
+ @pytest.mark.parametrize("shards", [None, (300, 4)])
306
+ @pytest.mark.skipif(not ZARR_V3, reason="These are tests for Zarr V3")
307
+ @pytest.mark.zarr
308
+ def test_wavpack_zarr_v3_partial_write(shards):
309
+ # partial writes into an existing chunk decode it and merge the new values
310
+ z = zarr.create_array(
311
+ store=zarr.storage.MemoryStore(),
312
+ shape=(250, 4),
313
+ chunks=(100, 4),
314
+ shards=shards,
315
+ dtype="int16",
316
+ serializer=WavPack(),
317
+ )
318
+ expected = np.zeros((250, 4), dtype="int16")
319
+ for start, stop, value in [(0, 100, 1), (100, 150, 2), (150, 250, 3), (120, 130, 4)]:
320
+ z[start:stop] = value
321
+ expected[start:stop] = value
322
+ np.testing.assert_array_equal(z[:], expected)
323
+
304
324
  if __name__ == "__main__":
305
325
  test_wavpack_numcodecs()
306
326
  test_wavpack_multi_threading_enabled()