Sync from SUSE:ALP:Source:Standard:1.0 python-numcodecs revision 755e4dda643d95f723d966ef7404d273
This commit is contained in:
commit
f5d904f396
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
95
move-from-entrypoints.patch
Normal file
95
move-from-entrypoints.patch
Normal file
@ -0,0 +1,95 @@
|
||||
From af20af8210384371f91f30251fc78a35ffd0c072 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Kowalik <steven@wedontsleep.org>
|
||||
Date: Wed, 9 Aug 2023 15:15:52 +1000
|
||||
Subject: [PATCH] Remove use of entrypoints
|
||||
|
||||
Since Python 3.8, the standard library has included functionality to
|
||||
query entry points directly using importlib.metadata. Since the API has
|
||||
changed for the better with Python 3.10, we need to support both ways of
|
||||
using it.
|
||||
---
|
||||
numcodecs/registry.py | 14 +++++++++-----
|
||||
numcodecs/tests/test_entrypoints.py | 2 --
|
||||
pyproject.toml | 7 ++++++-
|
||||
3 files changed, 15 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/numcodecs/registry.py b/numcodecs/registry.py
|
||||
index 532e9967..a4dff6d7 100644
|
||||
--- a/numcodecs/registry.py
|
||||
+++ b/numcodecs/registry.py
|
||||
@@ -1,7 +1,7 @@
|
||||
"""The registry module provides some simple convenience functions to enable
|
||||
applications to dynamically register and look-up codec classes."""
|
||||
+from importlib.metadata import entry_points
|
||||
import logging
|
||||
-from contextlib import suppress
|
||||
|
||||
logger = logging.getLogger("numcodecs")
|
||||
codec_registry = {}
|
||||
@@ -9,13 +9,17 @@
|
||||
|
||||
|
||||
def run_entrypoints():
|
||||
- import entrypoints
|
||||
entries.clear()
|
||||
- entries.update(entrypoints.get_group_named("numcodecs.codecs"))
|
||||
+ eps = entry_points()
|
||||
+ if hasattr(eps, 'select'):
|
||||
+ # If entry_points() has a select method, use that. Python 3.10+
|
||||
+ entries.update(eps.select(group="numcodecs.codecs"))
|
||||
+ else:
|
||||
+ # Otherwise, fallback to using get
|
||||
+ entries.update(eps.get("numcodecs.codecs", []))
|
||||
|
||||
|
||||
-with suppress(ImportError):
|
||||
- run_entrypoints()
|
||||
+run_entrypoints()
|
||||
|
||||
|
||||
def get_codec(config):
|
||||
diff --git a/numcodecs/tests/test_entrypoints.py b/numcodecs/tests/test_entrypoints.py
|
||||
index 81af635d..0d017f2d 100644
|
||||
--- a/numcodecs/tests/test_entrypoints.py
|
||||
+++ b/numcodecs/tests/test_entrypoints.py
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
-pytest.importorskip("entrypoints")
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
@@ -20,7 +19,6 @@ def set_path():
|
||||
numcodecs.registry.codec_registry.pop("test")
|
||||
|
||||
|
||||
-@pytest.mark.xfail(reason="FIXME: not working in wheels build")
|
||||
def test_entrypoint_codec(set_path):
|
||||
cls = numcodecs.registry.get_codec({"id": "test"})
|
||||
assert cls.codec_id == "test"
|
||||
diff --git a/pyproject.toml b/pyproject.toml
|
||||
index a2b50e32..147f9b54 100644
|
||||
--- a/pyproject.toml
|
||||
+++ b/pyproject.toml
|
||||
@@ -15,7 +15,6 @@ in data storage and communication applications.
|
||||
"""
|
||||
readme = "README.rst"
|
||||
dependencies = [
|
||||
- "entrypoints",
|
||||
"numpy>=1.7",
|
||||
]
|
||||
requires-python = ">=3.8"
|
||||
@@ -71,6 +70,12 @@ package-dir = {"" = "."}
|
||||
packages = ["numcodecs", "numcodecs.tests"]
|
||||
zip-safe = false
|
||||
|
||||
+[tool.setuptools.package-data]
|
||||
+numcodecs = [
|
||||
+ "tests/package_with_entrypoint/__init__.py",
|
||||
+ "tests/package_with_entrypoint-0.1.dist-info/entry_points.txt"
|
||||
+]
|
||||
+
|
||||
[tool.setuptools_scm]
|
||||
version_scheme = "guess-next-dev"
|
||||
local_scheme = "dirty-tag"
|
BIN
numcodecs-0.11.0.tar.gz
(Stored with Git LFS)
Normal file
BIN
numcodecs-0.11.0.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
151
numcodecs-pr417-raggednumpy.patch
Normal file
151
numcodecs-pr417-raggednumpy.patch
Normal file
@ -0,0 +1,151 @@
|
||||
diff --git a/numcodecs/json.py b/numcodecs/json.py
|
||||
index 670f223..b803a77 100644
|
||||
--- a/numcodecs/json.py
|
||||
+++ b/numcodecs/json.py
|
||||
@@ -54,7 +54,10 @@ class JSON(Codec):
|
||||
self._decoder = _json.JSONDecoder(**self._decoder_config)
|
||||
|
||||
def encode(self, buf):
|
||||
- buf = np.asarray(buf)
|
||||
+ try:
|
||||
+ buf = np.asarray(buf)
|
||||
+ except ValueError:
|
||||
+ buf = np.asarray(buf, dtype=object)
|
||||
items = buf.tolist()
|
||||
items.extend((buf.dtype.str, buf.shape))
|
||||
return self._encoder.encode(items).encode(self._text_encoding)
|
||||
diff --git a/numcodecs/msgpacks.py b/numcodecs/msgpacks.py
|
||||
index 026f583..6556498 100644
|
||||
--- a/numcodecs/msgpacks.py
|
||||
+++ b/numcodecs/msgpacks.py
|
||||
@@ -52,7 +52,10 @@ class MsgPack(Codec):
|
||||
self.raw = raw
|
||||
|
||||
def encode(self, buf):
|
||||
- buf = np.asarray(buf)
|
||||
+ try:
|
||||
+ buf = np.asarray(buf)
|
||||
+ except ValueError:
|
||||
+ buf = np.asarray(buf, dtype=object)
|
||||
items = buf.tolist()
|
||||
items.extend((buf.dtype.str, buf.shape))
|
||||
return msgpack.packb(items, use_bin_type=self.use_bin_type,
|
||||
diff --git a/numcodecs/tests/test_json.py b/numcodecs/tests/test_json.py
|
||||
index 7e8fcd6..8dac2b4 100644
|
||||
--- a/numcodecs/tests/test_json.py
|
||||
+++ b/numcodecs/tests/test_json.py
|
||||
@@ -2,7 +2,7 @@ import itertools
|
||||
|
||||
|
||||
import numpy as np
|
||||
-
|
||||
+import pytest
|
||||
|
||||
from numcodecs.json import JSON
|
||||
from numcodecs.tests.common import (check_config, check_repr, check_encode_decode_array,
|
||||
@@ -53,21 +53,23 @@ def test_backwards_compatibility():
|
||||
check_backwards_compatibility(JSON.codec_id, arrays, codecs)
|
||||
|
||||
|
||||
-def test_non_numpy_inputs():
|
||||
+@pytest.mark.parametrize(
|
||||
+ "input_data, dtype",
|
||||
+ [
|
||||
+ ([0, 1], None),
|
||||
+ ([[0, 1], [2, 3]], None),
|
||||
+ ([[0], [1], [2, 3]], object),
|
||||
+ ([[[0, 0]], [[1, 1]], [[2, 3]]], None),
|
||||
+ (["1"], None),
|
||||
+ (["11", "11"], None),
|
||||
+ (["11", "1", "1"], None),
|
||||
+ ([{}], None),
|
||||
+ ([{"key": "value"}, ["list", "of", "strings"]], object),
|
||||
+ ]
|
||||
+)
|
||||
+def test_non_numpy_inputs(input_data, dtype):
|
||||
# numpy will infer a range of different shapes and dtypes for these inputs.
|
||||
# Make sure that round-tripping through encode preserves this.
|
||||
- data = [
|
||||
- [0, 1],
|
||||
- [[0, 1], [2, 3]],
|
||||
- [[0], [1], [2, 3]],
|
||||
- [[[0, 0]], [[1, 1]], [[2, 3]]],
|
||||
- ["1"],
|
||||
- ["11", "11"],
|
||||
- ["11", "1", "1"],
|
||||
- [{}],
|
||||
- [{"key": "value"}, ["list", "of", "strings"]],
|
||||
- ]
|
||||
- for input_data in data:
|
||||
- for codec in codecs:
|
||||
- output_data = codec.decode(codec.encode(input_data))
|
||||
- assert np.array_equal(np.array(input_data), output_data)
|
||||
+ for codec in codecs:
|
||||
+ output_data = codec.decode(codec.encode(input_data))
|
||||
+ assert np.array_equal(np.array(input_data, dtype=dtype), output_data)
|
||||
diff --git a/numcodecs/tests/test_msgpacks.py b/numcodecs/tests/test_msgpacks.py
|
||||
index 6aeadcf..d76aa12 100644
|
||||
--- a/numcodecs/tests/test_msgpacks.py
|
||||
+++ b/numcodecs/tests/test_msgpacks.py
|
||||
@@ -2,6 +2,7 @@ import unittest
|
||||
|
||||
|
||||
import numpy as np
|
||||
+import pytest
|
||||
|
||||
|
||||
try:
|
||||
@@ -52,30 +53,32 @@ def test_backwards_compatibility():
|
||||
check_backwards_compatibility(codec.codec_id, arrays, [codec])
|
||||
|
||||
|
||||
-def test_non_numpy_inputs():
|
||||
+@pytest.mark.parametrize(
|
||||
+ "input_data, dtype",
|
||||
+ [
|
||||
+ ([0, 1], None),
|
||||
+ ([[0, 1], [2, 3]], None),
|
||||
+ ([[0], [1], [2, 3]], object),
|
||||
+ ([[[0, 0]], [[1, 1]], [[2, 3]]], None),
|
||||
+ (["1"], None),
|
||||
+ (["11", "11"], None),
|
||||
+ (["11", "1", "1"], None),
|
||||
+ ([{}], None),
|
||||
+ ([{"key": "value"}, ["list", "of", "strings"]], object),
|
||||
+ ([b"1"], None),
|
||||
+ ([b"11", b"11"], None),
|
||||
+ ([b"11", b"1", b"1"], None),
|
||||
+ ([{b"key": b"value"}, [b"list", b"of", b"strings"]], object),
|
||||
+ ]
|
||||
+)
|
||||
+def test_non_numpy_inputs(input_data, dtype):
|
||||
codec = MsgPack()
|
||||
# numpy will infer a range of different shapes and dtypes for these inputs.
|
||||
# Make sure that round-tripping through encode preserves this.
|
||||
- data = [
|
||||
- [0, 1],
|
||||
- [[0, 1], [2, 3]],
|
||||
- [[0], [1], [2, 3]],
|
||||
- [[[0, 0]], [[1, 1]], [[2, 3]]],
|
||||
- ["1"],
|
||||
- ["11", "11"],
|
||||
- ["11", "1", "1"],
|
||||
- [{}],
|
||||
- [{"key": "value"}, ["list", "of", "strings"]],
|
||||
- [b"1"],
|
||||
- [b"11", b"11"],
|
||||
- [b"11", b"1", b"1"],
|
||||
- [{b"key": b"value"}, [b"list", b"of", b"strings"]],
|
||||
- ]
|
||||
- for input_data in data:
|
||||
- actual = codec.decode(codec.encode(input_data))
|
||||
- expect = np.array(input_data)
|
||||
- assert expect.shape == actual.shape
|
||||
- assert np.array_equal(expect, actual)
|
||||
+ actual = codec.decode(codec.encode(input_data))
|
||||
+ expect = np.array(input_data, dtype=dtype)
|
||||
+ assert expect.shape == actual.shape
|
||||
+ assert np.array_equal(expect, actual)
|
||||
|
||||
|
||||
def test_encode_decode_shape_dtype_preserved():
|
131
python-numcodecs.changes
Normal file
131
python-numcodecs.changes
Normal file
@ -0,0 +1,131 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 28 02:21:23 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Add patch move-from-entrypoints.patch:
|
||||
* Drop requirements on entrypoints, use importlib.metadata.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 12 16:00:40 UTC 2023 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
- Update to 0.11.0
|
||||
* Speed up isinstance checks of
|
||||
numcodecs.ndarray_like.NDArrayLike,
|
||||
numcodecs.ndarray_like.DType and
|
||||
numcodecs.ndarray_like.FlagsObj. By Andreas Poehlmann, #379.
|
||||
* Remove unnecessary None argument to .get(), it is the default
|
||||
value. By Dimitri Papadopoulos Orfanos, #395.
|
||||
* Apply refurb suggestions. By Dimitri Papadopoulos Orfanos,
|
||||
#372.
|
||||
* Migrate codespell configuration to pyproject.toml and get rid
|
||||
of setup.cfg. By Dimitri Papadopoulos Orfanos #374.
|
||||
* Unvendor cpuinfo. By Dimitri Papadopoulos Orfanos #373.
|
||||
* Drop headers. By John Kirkham, #375.
|
||||
* Remove Python 2 code. By Dimitri Papadopoulos Orfanos #368,
|
||||
#387.
|
||||
* Support Python 3.11. By Dimitri Papadopoulos Orfanos, #369.
|
||||
* Drop Python 3.7. By John Kirkham,, #405 #406.
|
||||
* Test with zfpy 1.0.0. By John Kirkham, #385.
|
||||
* Remove vendored C files and re-generate them on the fly using
|
||||
Cython. Add a pyproject.toml file to define Cython as a build
|
||||
dependency. By Dimitri Papadopoulos Orfanos, #369.
|
||||
* Add tests for all registry classes. By Josh Moore, #349.
|
||||
* Finish pyproject.toml migration. By John Kirkham #382.
|
||||
- Add numcodecs-pr417-raggednumpy.patch
|
||||
* gh#zarr-developers/numcodecs#417
|
||||
- Refresh unbundle-libs.patch for system blosc supporting snappy
|
||||
* gh#zarr-developers/numcodecs#264
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Sep 25 20:23:44 UTC 2022 - Arun Persaud <arun@gmx.de>
|
||||
|
||||
- specfile:
|
||||
* update copyright year
|
||||
* require python >= 3.7
|
||||
|
||||
- update to version 0.10.2:
|
||||
* Fix
|
||||
+ Add BitRound (0.10.0) to registry. By Josh Moore, #342.
|
||||
|
||||
- changes from version 0.10.1:
|
||||
* Maintenance
|
||||
+ Add entrypoints to setup.py. By Josh Moore, #332.
|
||||
+ Fix spelling. By Dimitri Papadopoulos Orfanos, #336.
|
||||
+ Drop Python 3.6 from tests By Dimitri Papadopoulos Orfanos,
|
||||
#338, #339.
|
||||
+ Remove trailing spaces and empty lines. By Dimitri Papadopoulos
|
||||
Orfanos, #341.
|
||||
+ Add LGTM.com configuration file By Dimitri Papadopoulos Orfanos,
|
||||
#337.
|
||||
|
||||
- changes from version 0.10.0:
|
||||
* Enhancements
|
||||
+ Add support of alternative array classes (other than NumPy
|
||||
arrays) By Mads R. B. Kristensen, #305.
|
||||
+ Add ability to find codecs via entrypoint numcodecs.codecs. By
|
||||
Martin Durant, #290.
|
||||
+ Add bitround codec By Ryan Abernathy and Martin Durant, #298.
|
||||
+ Introduce a flat option to ensure_contiguous_ndarray to switch
|
||||
off flatten for ZFPY codec By Haiying Xu, #307.
|
||||
* Bug fixes
|
||||
+ Fix a flatten array error for ZFPY, ZFPY codec is supported on
|
||||
Python 3.9 and 3.10 on Linux and MacOS, the docs about ZFPY is
|
||||
also available. By Haiying Xu, John Kirkham, Ryan Abernathey
|
||||
#303.
|
||||
+ Codex: make encode and decode @abstractmethods By Mads
|
||||
R. B. Kristensen, #306.
|
||||
+ Fix expected result test for Shuffle. By Elliott Sales de
|
||||
Andrade, #282.
|
||||
* Maintenance
|
||||
+ Multiple code linting fixes. By Dimitri Papadopoulos Orfanos,
|
||||
#295, #294, #293, and #292.
|
||||
+ Drop Python 3.6 By Josh Moore, #318.
|
||||
+ Fix macOS Python 3.10 By John Kirkham, #311.
|
||||
+ chore: bump cibuildwheel version, use action By Henry Schreiner,
|
||||
#309.
|
||||
+ Specify language as ‘en’ instead of None. By John Kirkham, #329.
|
||||
+ Move master to main. By John Kirkham, #322.
|
||||
+ Drop fastparquet benchmark. By John Kirkham, #321.
|
||||
+ Trim wheel builds. By John Kirkham, #320.
|
||||
|
||||
- changes from version 0.9.1:
|
||||
* Fix inaccurate docstrings for Blosc. By James Webber, #287.
|
||||
|
||||
- changes from version 0.9.0:
|
||||
* c-blosc upgrade 1.18.1 -> 1.21.0. Warning: this temporarily
|
||||
removes support for snappy compression! By kindjacket, #283.
|
||||
* Fix an ImportError with Blosc on Android. By Daniel Jewell, #284.
|
||||
|
||||
- changes from version 0.8.1:
|
||||
* Fix an ImportError with Blosc on Android. By Daniel Jewell, #284.
|
||||
|
||||
- changes from version 0.8.0:
|
||||
* The numcodecs.zfpy.ZFPY codec is now supported on Python 3.8 if
|
||||
zfpy==0.5.5 is installed. By haiying xu, #229.
|
||||
* Add support for byte Shuffle filter By Paul Branson and Martin
|
||||
Durant #273.
|
||||
* Update Windows + Mac CI to run all tests. By Jackson Maxfield
|
||||
Brown, #276. Help from Oleg Höfling, #273.
|
||||
* Update cpuinfo to 8.0.0. By Florian Jetter, #280.
|
||||
* Drop out-of-date manual release docs. By John Kirkham, #272.
|
||||
* Add support for Python 3.9 and Update GitHub Actions.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 25 11:13:12 UTC 2022 - Bernhard Wiedemann <bwiedemann@suse.com>
|
||||
|
||||
- Disable AVX2 to make package build reproducible (boo#1198818)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 17 14:41:47 UTC 2021 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
- Update to v0.7.3
|
||||
* Add support for Python 3.9
|
||||
- Disable python36 build (NumPy not available, NEP 29)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 28 12:24:07 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
|
||||
|
||||
- initial specfile for v0.7.2
|
||||
- use and link against system provided blosc, zstd, lz4
|
||||
* unbundle-libs.patch
|
||||
* gh#zarr-developers/numcodecs#264
|
||||
- required by zarr, which is required by dask
|
86
python-numcodecs.spec
Normal file
86
python-numcodecs.spec
Normal file
@ -0,0 +1,86 @@
|
||||
#
|
||||
# spec file for package python-numcodecs
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: python-numcodecs
|
||||
Version: 0.11.0
|
||||
Release: 0
|
||||
Summary: Buffer compression and transformation codecs
|
||||
License: MIT
|
||||
URL: https://github.com/zarr-developers/numcodecs
|
||||
Source: https://files.pythonhosted.org/packages/source/n/numcodecs/numcodecs-%{version}.tar.gz
|
||||
# PATCH-FEATURE-UPSTREAM unbundle-libs.patch -- unbundle system libs gh#zarr-developers/numcodecs#264
|
||||
Patch0: unbundle-libs.patch
|
||||
# PATCH-FIX-UPSTREAM numcodecs-pr417-raggednumpy.patch gh#zarr-developers/numcodecs#417
|
||||
Patch1: numcodecs-pr417-raggednumpy.patch
|
||||
# PATCH-FIX-UPSTREAM gh#zarr-developers/numcodecs#442
|
||||
Patch2: move-from-entrypoints.patch
|
||||
BuildRequires: %{python_module Cython}
|
||||
BuildRequires: %{python_module base >= 3.8}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module py-cpuinfo}
|
||||
BuildRequires: %{python_module setuptools > 64}
|
||||
BuildRequires: %{python_module setuptools_scm > 6.2}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: blosc-devel
|
||||
BuildRequires: cmake
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildRequires: pkgconfig(liblz4)
|
||||
BuildRequires: pkgconfig(libzstd)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
Requires: python-numpy >= 1.7
|
||||
Suggests: python-msgpack
|
||||
Suggests: python-zfpy >= 1
|
||||
# SECTION test requirements
|
||||
BuildRequires: %{python_module numpy >= 1.7}
|
||||
BuildRequires: %{python_module msgpack}
|
||||
BuildRequires: %{python_module pytest}
|
||||
# /SECTION
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
A Python package providing buffer compression and transformation codecs for use
|
||||
in data storage and communication applications.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n numcodecs-%{version}
|
||||
# use system libraries instead of bundled ones
|
||||
rm -r c-blosc
|
||||
sed -i 's/--cov=numcodecs --cov-report xml//' pyproject.toml
|
||||
|
||||
%build
|
||||
export CFLAGS="%{optflags}"
|
||||
export DISABLE_NUMCODECS_AVX2=1
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||
|
||||
%check
|
||||
%pytest_arch --pyargs numcodecs -rsfE
|
||||
|
||||
%files %{python_files}
|
||||
%doc README.rst
|
||||
%license LICENSE.txt
|
||||
%{python_sitearch}/numcodecs
|
||||
%{python_sitearch}/numcodecs-%{version}*-info
|
||||
|
||||
%changelog
|
48
unbundle-libs.patch
Normal file
48
unbundle-libs.patch
Normal file
@ -0,0 +1,48 @@
|
||||
Index: numcodecs-0.11.0/setup.py
|
||||
===================================================================
|
||||
--- numcodecs-0.11.0.orig/setup.py
|
||||
+++ numcodecs-0.11.0/setup.py
|
||||
@@ -104,6 +104,7 @@ def blosc_extension():
|
||||
Extension('numcodecs.blosc',
|
||||
sources=sources + blosc_sources,
|
||||
include_dirs=include_dirs,
|
||||
+ libraries=[] if blosc_sources else ['blosc'],
|
||||
define_macros=define_macros,
|
||||
extra_compile_args=extra_compile_args,
|
||||
),
|
||||
@@ -138,6 +139,7 @@ def zstd_extension():
|
||||
Extension('numcodecs.zstd',
|
||||
sources=sources + zstd_sources,
|
||||
include_dirs=include_dirs,
|
||||
+ libraries=[] if zstd_sources else ['zstd'],
|
||||
define_macros=define_macros,
|
||||
extra_compile_args=extra_compile_args,
|
||||
),
|
||||
@@ -165,6 +167,7 @@ def lz4_extension():
|
||||
Extension('numcodecs.lz4',
|
||||
sources=sources + lz4_sources,
|
||||
include_dirs=include_dirs,
|
||||
+ libraries=[] if lz4_sources else ['lz4'],
|
||||
define_macros=define_macros,
|
||||
extra_compile_args=extra_compile_args,
|
||||
),
|
||||
Index: numcodecs-0.11.0/numcodecs/tests/test_blosc.py
|
||||
===================================================================
|
||||
--- numcodecs-0.11.0.orig/numcodecs/tests/test_blosc.py
|
||||
+++ numcodecs-0.11.0/numcodecs/tests/test_blosc.py
|
||||
@@ -155,10 +155,11 @@ def test_compress_complib(use_threads):
|
||||
}
|
||||
blosc.use_threads = use_threads
|
||||
for cname in blosc.list_compressors():
|
||||
- enc = blosc.compress(arr, cname.encode(), 1, Blosc.NOSHUFFLE)
|
||||
- complib = blosc.cbuffer_complib(enc)
|
||||
- expected_complib = expected_complibs[cname]
|
||||
- assert complib == expected_complib
|
||||
+ if cname in expected_complibs:
|
||||
+ enc = blosc.compress(arr, cname.encode(), 1, Blosc.NOSHUFFLE)
|
||||
+ complib = blosc.cbuffer_complib(enc)
|
||||
+ expected_complib = expected_complibs[cname]
|
||||
+ assert complib == expected_complib
|
||||
with pytest.raises(ValueError):
|
||||
# capitalized cname
|
||||
blosc.compress(arr, b'LZ4', 1)
|
Loading…
Reference in New Issue
Block a user