wavpack-numcodecs 0.2.2__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.
- {wavpack-numcodecs-0.2.2/src/wavpack_numcodecs.egg-info → wavpack_numcodecs-0.3.0}/PKG-INFO +41 -9
- wavpack-numcodecs-0.2.2/PKG-INFO → wavpack_numcodecs-0.3.0/README.md +28 -21
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/pyproject.toml +5 -2
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/setup.py +2 -4
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/__init__.py +36 -0
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/compat_ext.c +8082 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/linux-x86_64-glibc2.39/libwavpack.so +0 -0
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/libraries/5.8.0/linux-x86_64-glibc2.35/libwavpack.so +0 -0
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/libraries/5.8.0/linux-x86_64-glibc2.39/libwavpack.so +0 -0
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/libraries/5.8.0/linux-x86_64-glibc2.39/libwavpack.so.1 +0 -0
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_32/wavpackdll.dll +0 -0
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_32/wavpackdll.lib +0 -0
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_64/wavpackdll.dll +0 -0
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/libraries/5.8.0/windows-x86_64/wavpackdll.lib +0 -0
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/wavpack.c +16410 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/wavpack.pyx +0 -3
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs/wavpackv3.py +93 -0
- wavpack-numcodecs-0.2.2/README.md → wavpack_numcodecs-0.3.0/src/wavpack_numcodecs.egg-info/PKG-INFO +53 -5
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs.egg-info/SOURCES.txt +8 -1
- wavpack_numcodecs-0.3.0/src/wavpack_numcodecs.egg-info/entry_points.txt +5 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/tests/test_imports.py +2 -2
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/tests/test_wavpack_codec.py +106 -10
- wavpack-numcodecs-0.2.2/src/wavpack_numcodecs/__init__.py +0 -13
- wavpack-numcodecs-0.2.2/src/wavpack_numcodecs/compat_ext.c +0 -4502
- wavpack-numcodecs-0.2.2/src/wavpack_numcodecs/libraries/5.7.0/linux-x86_64-glibc2.35/libwavpack.so.1 +0 -0
- wavpack-numcodecs-0.2.2/src/wavpack_numcodecs/wavpack.c +0 -9787
- wavpack-numcodecs-0.2.2/src/wavpack_numcodecs.egg-info/entry_points.txt +0 -2
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/LICENSE +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/setup.cfg +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/compat_ext.pxd +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/compat_ext.pyx +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/globals.py +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/include/wavpack/wavpack.h +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.6.0/linux-x86_64-glibc2.35/libwavpack.so +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_32/wavpackdll.dll +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_32/wavpackdll.lib +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_64/wavpackdll.dll +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.6.0/windows-x86_64/wavpackdll.lib +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/linux-x86_64-glibc2.31/libwavpack.so +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/linux-x86_64-glibc2.35/libwavpack.so +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_32/wavpackdll.dll +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_32/wavpackdll.lib +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_64/wavpackdll.dll +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libraries/5.7.0/windows-x86_64/wavpackdll.lib +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/libwavpack.so.1 +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/src/decoder.c +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs/src/encoder.c +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs.egg-info/dependency_links.txt +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs.egg-info/requires.txt +0 -0
- {wavpack-numcodecs-0.2.2 → wavpack_numcodecs-0.3.0}/src/wavpack_numcodecs.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: wavpack-numcodecs
|
|
3
|
-
Version: 0.
|
|
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
|
[](https://badge.fury.io/py/wavpack-numcodecs) 
|
|
18
27
|
|
|
@@ -35,11 +44,26 @@ brew install wavpack
|
|
|
35
44
|
```
|
|
36
45
|
|
|
37
46
|
For Linux and Windows, the package comes with pre-built binaries of the most
|
|
38
|
-
[recent version Wavpack version](https://github.com/dbry/WavPack/releases/tag/5.
|
|
47
|
+
[recent version Wavpack version](https://github.com/dbry/WavPack/releases/tag/5.8.0).
|
|
48
|
+
|
|
49
|
+
On Windows, you need to have the "Microsoft C++ Build Tools" installed. You can download it and install it from [here](https://visualstudio.microsoft.com/visual-cpp-build-tools/).
|
|
39
50
|
|
|
40
51
|
On Linux, if an existing `wavpack` installation is found, the package will use it. Otherwise, it will use the pre-built binaries available in the `wavpack_numcodecs/libraries` folder.
|
|
41
52
|
|
|
42
|
-
|
|
53
|
+
> [!IMPORTANT]
|
|
54
|
+
> The pre-built binaries for Linux are pre-compiled against ``glibc`` libraries that come with Ubuntu LTS recent versions
|
|
55
|
+
> (2.35 for LTS 22.04 and 2.39 for LTS 24.04).
|
|
56
|
+
> If your system has a different version of ``glibc``, you need to install `wavpack` manually with:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
WAVPACK_VERSION=5.8.0
|
|
60
|
+
wget "https://www.wavpack.com/wavpack-${WAVPACK_VERSION}.tar.bz2"
|
|
61
|
+
tar -xf wavpack-$WAVPACK_VERSION.tar.bz2
|
|
62
|
+
cd wavpack-$WAVPACK_VERSION
|
|
63
|
+
./configure
|
|
64
|
+
sudo make install
|
|
65
|
+
cd ..
|
|
66
|
+
```
|
|
43
67
|
|
|
44
68
|
## Installation
|
|
45
69
|
|
|
@@ -69,16 +93,24 @@ data = ... # any numpy array
|
|
|
69
93
|
# instantiate WavPack compressor
|
|
70
94
|
wv_compressor = WavPack(level=2, bps=None)
|
|
71
95
|
|
|
72
|
-
|
|
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)
|
|
73
104
|
|
|
74
105
|
data_read = z[:]
|
|
75
106
|
```
|
|
76
107
|
Available `**kwargs` can be browsed with: `WavPack?`
|
|
77
108
|
|
|
78
|
-
**
|
|
79
|
-
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
|
|
80
110
|
installed.
|
|
81
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
|
+
|
|
82
114
|
# Developmers guide
|
|
83
115
|
|
|
84
116
|
## How to upgrade WavPack installation and make a new release
|
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: wavpack-numcodecs
|
|
3
|
-
Version: 0.2.2
|
|
4
|
-
Summary: Numcodecs implementation of WavPack audio codec.
|
|
5
|
-
Author-email: Alessio Buccino <alessiop.buccino@gmail.com>, David Bryant <david@wavpack.com>
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/AllenNeuralDynamics/wavpack-numcodecs
|
|
8
|
-
Keywords: example,project
|
|
9
|
-
Classifier: Programming Language :: Python :: 3
|
|
10
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
-
Classifier: Operating System :: OS Independent
|
|
12
|
-
Description-Content-Type: text/markdown
|
|
13
|
-
Provides-Extra: test
|
|
14
|
-
Provides-Extra: test_no_cython
|
|
15
|
-
License-File: LICENSE
|
|
16
|
-
|
|
17
1
|
[](https://badge.fury.io/py/wavpack-numcodecs) 
|
|
18
2
|
|
|
19
3
|
|
|
@@ -35,11 +19,26 @@ brew install wavpack
|
|
|
35
19
|
```
|
|
36
20
|
|
|
37
21
|
For Linux and Windows, the package comes with pre-built binaries of the most
|
|
38
|
-
[recent version Wavpack version](https://github.com/dbry/WavPack/releases/tag/5.
|
|
22
|
+
[recent version Wavpack version](https://github.com/dbry/WavPack/releases/tag/5.8.0).
|
|
23
|
+
|
|
24
|
+
On Windows, you need to have the "Microsoft C++ Build Tools" installed. You can download it and install it from [here](https://visualstudio.microsoft.com/visual-cpp-build-tools/).
|
|
39
25
|
|
|
40
26
|
On Linux, if an existing `wavpack` installation is found, the package will use it. Otherwise, it will use the pre-built binaries available in the `wavpack_numcodecs/libraries` folder.
|
|
41
27
|
|
|
42
|
-
|
|
28
|
+
> [!IMPORTANT]
|
|
29
|
+
> The pre-built binaries for Linux are pre-compiled against ``glibc`` libraries that come with Ubuntu LTS recent versions
|
|
30
|
+
> (2.35 for LTS 22.04 and 2.39 for LTS 24.04).
|
|
31
|
+
> If your system has a different version of ``glibc``, you need to install `wavpack` manually with:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
WAVPACK_VERSION=5.8.0
|
|
35
|
+
wget "https://www.wavpack.com/wavpack-${WAVPACK_VERSION}.tar.bz2"
|
|
36
|
+
tar -xf wavpack-$WAVPACK_VERSION.tar.bz2
|
|
37
|
+
cd wavpack-$WAVPACK_VERSION
|
|
38
|
+
./configure
|
|
39
|
+
sudo make install
|
|
40
|
+
cd ..
|
|
41
|
+
```
|
|
43
42
|
|
|
44
43
|
## Installation
|
|
45
44
|
|
|
@@ -69,16 +68,24 @@ data = ... # any numpy array
|
|
|
69
68
|
# instantiate WavPack compressor
|
|
70
69
|
wv_compressor = WavPack(level=2, bps=None)
|
|
71
70
|
|
|
72
|
-
|
|
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)
|
|
73
79
|
|
|
74
80
|
data_read = z[:]
|
|
75
81
|
```
|
|
76
82
|
Available `**kwargs` can be browsed with: `WavPack?`
|
|
77
83
|
|
|
78
|
-
**
|
|
79
|
-
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
|
|
80
85
|
installed.
|
|
81
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
|
+
|
|
82
89
|
# Developmers guide
|
|
83
90
|
|
|
84
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.
|
|
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"},
|
|
@@ -32,10 +32,13 @@ test_no_cython = [
|
|
|
32
32
|
"zarr"
|
|
33
33
|
]
|
|
34
34
|
|
|
35
|
-
|
|
36
35
|
[project.urls]
|
|
37
36
|
"Homepage" = "https://github.com/AllenNeuralDynamics/wavpack-numcodecs"
|
|
38
37
|
|
|
38
|
+
[project.entry-points."numcodecs.codecs"]
|
|
39
|
+
wavpack = "wavpack_numcodecs.wavpack:WavPack"
|
|
40
|
+
[project.entry-points."zarr.codecs"]
|
|
41
|
+
wavpack = "wavpack_numcodecs.wavpackv3:WavPack"
|
|
39
42
|
|
|
40
43
|
[build-system]
|
|
41
44
|
requires = ["setuptools>=62.0"]
|
|
@@ -14,7 +14,7 @@ except ImportError:
|
|
|
14
14
|
else:
|
|
15
15
|
have_cython = True
|
|
16
16
|
|
|
17
|
-
LATEST_WAVPACK_VERSION = "5.
|
|
17
|
+
LATEST_WAVPACK_VERSION = "5.8.0"
|
|
18
18
|
SRC_FOLDER = "src/wavpack_numcodecs"
|
|
19
19
|
|
|
20
20
|
|
|
@@ -43,7 +43,7 @@ def get_build_extensions():
|
|
|
43
43
|
glibc_version = platform.libc_ver()[1]
|
|
44
44
|
if glibc_version not in available_glibc_versions:
|
|
45
45
|
raise RuntimeError(
|
|
46
|
-
f"Could not find a matching glibc version
|
|
46
|
+
f"Could not find a matching the system's glibc version {glibc_version}. "
|
|
47
47
|
f"Available builds: {available_glibc_versions}"
|
|
48
48
|
)
|
|
49
49
|
distr_folder = f"linux-x86_64-glibc{glibc_version}"
|
|
@@ -108,12 +108,10 @@ def get_build_extensions():
|
|
|
108
108
|
return extensions
|
|
109
109
|
|
|
110
110
|
|
|
111
|
-
entry_points = {"numcodecs.codecs": ["wavpack = wavpack_numcodecs:WavPack"]}
|
|
112
111
|
extensions = get_build_extensions()
|
|
113
112
|
cmdclass = {"build_ext": build_ext} if have_cython else {}
|
|
114
113
|
|
|
115
114
|
setup(
|
|
116
115
|
ext_modules=extensions,
|
|
117
116
|
cmdclass=cmdclass,
|
|
118
|
-
entry_points=entry_points,
|
|
119
117
|
)
|
|
@@ -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")
|