wavpack-numcodecs 0.2.3__tar.gz → 0.3.0__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 (47) hide show
  1. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/PKG-INFO +24 -7
  2. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/README.md +11 -3
  3. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/pyproject.toml +6 -5
  4. wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/__init__.py +36 -0
  5. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/compat_ext.c +3021 -2419
  6. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/wavpack.c +6437 -3952
  7. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/wavpack.pyx +0 -3
  8. wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/wavpackv3.py +93 -0
  9. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs.egg-info/PKG-INFO +24 -7
  10. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs.egg-info/SOURCES.txt +1 -0
  11. wavpack_numcodecs-0.3.0/src/wavpack_numcodecs.egg-info/entry_points.txt +5 -0
  12. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs.egg-info/requires.txt +2 -2
  13. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/tests/test_imports.py +2 -2
  14. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/tests/test_wavpack_codec.py +106 -10
  15. wavpack-numcodecs-0.2.3/src/wavpack_numcodecs/__init__.py +0 -13
  16. wavpack-numcodecs-0.2.3/src/wavpack_numcodecs.egg-info/entry_points.txt +0 -2
  17. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/LICENSE +0 -0
  18. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/setup.cfg +0 -0
  19. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/setup.py +0 -0
  20. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/compat_ext.pxd +0 -0
  21. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/compat_ext.pyx +0 -0
  22. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/globals.py +0 -0
  23. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/include/wavpack/wavpack.h +0 -0
  24. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.6.0/linux-x86_64-glibc2.35/libwavpack.so +0 -0
  25. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_32/wavpackdll.dll +0 -0
  26. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_32/wavpackdll.lib +0 -0
  27. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_64/wavpackdll.dll +0 -0
  28. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_64/wavpackdll.lib +0 -0
  29. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/linux-x86_64-glibc2.31/libwavpack.so +0 -0
  30. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/linux-x86_64-glibc2.35/libwavpack.so +0 -0
  31. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/linux-x86_64-glibc2.39/libwavpack.so +0 -0
  32. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_32/wavpackdll.dll +0 -0
  33. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_32/wavpackdll.lib +0 -0
  34. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_64/wavpackdll.dll +0 -0
  35. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_64/wavpackdll.lib +0 -0
  36. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.8.0/linux-x86_64-glibc2.35/libwavpack.so +0 -0
  37. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.8.0/linux-x86_64-glibc2.39/libwavpack.so +0 -0
  38. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.8.0/linux-x86_64-glibc2.39/libwavpack.so.1 +0 -0
  39. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_32/wavpackdll.dll +0 -0
  40. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_32/wavpackdll.lib +0 -0
  41. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_64/wavpackdll.dll +0 -0
  42. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_64/wavpackdll.lib +0 -0
  43. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libwavpack.so.1 +0 -0
  44. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/src/decoder.c +0 -0
  45. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/src/encoder.c +0 -0
  46. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs.egg-info/dependency_links.txt +0 -0
  47. {wavpack-numcodecs-0.2.3 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: wavpack-numcodecs
3
- Version: 0.2.3
3
+ Version: 0.3.0
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
@@ -10,9 +10,18 @@ Classifier: Programming Language :: Python :: 3
10
10
  Classifier: License :: OSI Approved :: MIT License
11
11
  Classifier: Operating System :: OS Independent
12
12
  Description-Content-Type: text/markdown
13
- Provides-Extra: test
14
- Provides-Extra: test_no_cython
15
13
  License-File: LICENSE
14
+ Requires-Dist: numpy
15
+ Requires-Dist: numcodecs
16
+ Requires-Dist: packaging
17
+ Provides-Extra: test
18
+ Requires-Dist: pytest; extra == "test"
19
+ Requires-Dist: zarr; extra == "test"
20
+ Requires-Dist: Cython; extra == "test"
21
+ Provides-Extra: test-no-cython
22
+ Requires-Dist: pytest; extra == "test-no-cython"
23
+ Requires-Dist: zarr; extra == "test-no-cython"
24
+ Dynamic: license-file
16
25
 
17
26
  [![PyPI version](https://badge.fury.io/py/wavpack-numcodecs.svg)](https://badge.fury.io/py/wavpack-numcodecs) ![tests](https://github.com/AllenNeuralDynamics/wavpack-numcodecs/actions/workflows/python-package-cython.yml/badge.svg)
18
27
 
@@ -84,16 +93,24 @@ data = ... # any numpy array
84
93
  # instantiate WavPack compressor
85
94
  wv_compressor = WavPack(level=2, bps=None)
86
95
 
87
- z = zarr.array(data, compressor=wv_compressor)
96
+ # v2
97
+ group = zarr.group()
98
+ z = group.create_dataset(name="wv_dset", data=data, compressor=wv_compressor)
99
+
100
+ # v3
101
+ zarr.config.set({"default_zarr_version": 3})
102
+ group = zarr.group()
103
+ z = group.create_array(name="wv_dset3", data=data, serializer=wv_compressor)
88
104
 
89
105
  data_read = z[:]
90
106
  ```
91
107
  Available `**kwargs` can be browsed with: `WavPack?`
92
108
 
93
- **NOTE:**
94
- In order to reload in zarr an array saved with the `WavPack`, you just need to have the `wavpack_numcodecs` package
109
+ > **_NOTE 1:_** In order to reload in zarr an array saved with the `WavPack`, you just need to have the `wavpack_numcodecs` package
95
110
  installed.
96
111
 
112
+ > **_NOTE 2:_** The Zarr v3 implementation is an `ArrayBytesCodec`. The `zarr.create_array` function only supports `ArrayArrayCodec` objects for `filters` and `BytesBytesCodecs` for `compressors`. Hence, we need to use the `WavPack` codec as a `serializer`, which is expected to be an `ArrayBytesCodec` object.
113
+
97
114
  # Developmers guide
98
115
 
99
116
  ## How to upgrade WavPack installation and make a new release
@@ -68,16 +68,24 @@ data = ... # any numpy array
68
68
  # instantiate WavPack compressor
69
69
  wv_compressor = WavPack(level=2, bps=None)
70
70
 
71
- z = zarr.array(data, compressor=wv_compressor)
71
+ # v2
72
+ group = zarr.group()
73
+ z = group.create_dataset(name="wv_dset", data=data, compressor=wv_compressor)
74
+
75
+ # v3
76
+ zarr.config.set({"default_zarr_version": 3})
77
+ group = zarr.group()
78
+ z = group.create_array(name="wv_dset3", data=data, serializer=wv_compressor)
72
79
 
73
80
  data_read = z[:]
74
81
  ```
75
82
  Available `**kwargs` can be browsed with: `WavPack?`
76
83
 
77
- **NOTE:**
78
- In order to reload in zarr an array saved with the `WavPack`, you just need to have the `wavpack_numcodecs` package
84
+ > **_NOTE 1:_** In order to reload in zarr an array saved with the `WavPack`, you just need to have the `wavpack_numcodecs` package
79
85
  installed.
80
86
 
87
+ > **_NOTE 2:_** The Zarr v3 implementation is an `ArrayBytesCodec`. The `zarr.create_array` function only supports `ArrayArrayCodec` objects for `filters` and `BytesBytesCodecs` for `compressors`. Hence, we need to use the `WavPack` codec as a `serializer`, which is expected to be an `ArrayBytesCodec` object.
88
+
81
89
  # Developmers guide
82
90
 
83
91
  ## How to upgrade WavPack installation and make a new release
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "wavpack-numcodecs"
3
- version = "0.2.3"
3
+ version = "0.3.0"
4
4
  description = "Numcodecs implementation of WavPack audio codec."
5
5
  authors = [
6
6
  {name = "Alessio Buccino", email = "alessiop.buccino@gmail.com"},
@@ -23,21 +23,22 @@ dependencies = [
23
23
  [project.optional-dependencies]
24
24
  test = [
25
25
  "pytest",
26
- "zarr<3.0.0",
26
+ "zarr",
27
27
  "Cython"
28
28
  ]
29
29
 
30
30
  test_no_cython = [
31
31
  "pytest",
32
- "zarr<3.0.0"
32
+ "zarr"
33
33
  ]
34
34
 
35
-
36
35
  [project.urls]
37
36
  "Homepage" = "https://github.com/AllenNeuralDynamics/wavpack-numcodecs"
38
37
 
39
38
  [project.entry-points."numcodecs.codecs"]
40
- wavpack = "wavpack_numcodecs:WavPack"
39
+ wavpack = "wavpack_numcodecs.wavpack:WavPack"
40
+ [project.entry-points."zarr.codecs"]
41
+ wavpack = "wavpack_numcodecs.wavpackv3:WavPack"
41
42
 
42
43
  [build-system]
43
44
  requires = ["setuptools>=62.0"]
@@ -0,0 +1,36 @@
1
+ import importlib.metadata
2
+ import importlib.util
3
+ import numcodecs
4
+ from packaging.version import parse
5
+
6
+ from wavpack_numcodecs.wavpack import wavpack_version
7
+
8
+
9
+ HAVE_ZARR = importlib.util.find_spec("zarr") is not None
10
+
11
+ USE_ZARR_V3 = False
12
+ if HAVE_ZARR:
13
+ import zarr
14
+
15
+ if parse(zarr.__version__) >= parse("3.0.0"):
16
+ USE_ZARR_V3 = True
17
+
18
+ if USE_ZARR_V3:
19
+ from zarr.registry import register_codec
20
+ from wavpack_numcodecs.wavpackv3 import WavPack
21
+ else:
22
+ from numcodecs import register_codec
23
+ from wavpack_numcodecs.wavpack import WavPack
24
+
25
+ register_codec("wavpack", WavPack)
26
+
27
+ from .globals import (
28
+ get_num_decoding_threads,
29
+ get_num_encoding_threads,
30
+ reset_num_decoding_threads,
31
+ reset_num_encoding_threads,
32
+ set_num_decoding_threads,
33
+ set_num_encoding_threads,
34
+ )
35
+
36
+ __version__ = importlib.metadata.version("wavpack_numcodecs")