git: f65555c64c16 - main - databases/py-caterva: Fix build with newer caterva
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 31 Aug 2022 11:42:59 UTC
The branch main has been updated by sunpoet:
URL: https://cgit.FreeBSD.org/ports/commit/?id=f65555c64c16c7ef471c24df3a8f4c4ae892741b
commit f65555c64c16c7ef471c24df3a8f4c4ae892741b
Author: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2022-08-31 11:22:02 +0000
Commit: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2022-08-31 11:40:55 +0000
databases/py-caterva: Fix build with newer caterva
- Bump PORTREVISION for package change
---
databases/py-caterva/Makefile | 3 +-
.../py-caterva/files/patch-caterva-caterva_ext.pyx | 73 ++++++++++++++++++++++
.../py-caterva/files/patch-caterva-constructors.py | 13 ++++
.../files/patch-tests-test_metalayers.py | 29 +++++++++
.../files/patch-tests-test_persistency.py | 28 +++++++++
5 files changed, 145 insertions(+), 1 deletion(-)
diff --git a/databases/py-caterva/Makefile b/databases/py-caterva/Makefile
index 02124a3c3582..ba422bc2372c 100644
--- a/databases/py-caterva/Makefile
+++ b/databases/py-caterva/Makefile
@@ -1,5 +1,6 @@
PORTNAME= caterva
PORTVERSION= 0.7.2
+PORTREVISION= 1
CATEGORIES= databases python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,7 +11,7 @@ COMMENT= Caterva for Python (multidimensional compressed data containers)
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= caterva>=0.5.0_1:databases/caterva \
+BUILD_DEPENDS= caterva>=0.5.0_2:databases/caterva \
cmake:devel/cmake \
ninja:devel/ninja \
${PYTHON_PKGNAMEPREFIX}scikit-build>=0:devel/py-scikit-build@${PY_FLAVOR}
diff --git a/databases/py-caterva/files/patch-caterva-caterva_ext.pyx b/databases/py-caterva/files/patch-caterva-caterva_ext.pyx
new file mode 100644
index 000000000000..75e6f5a76894
--- /dev/null
+++ b/databases/py-caterva/files/patch-caterva-caterva_ext.pyx
@@ -0,0 +1,73 @@
+Reference: https://github.com/Blosc/caterva/commit/d34818b6fde503b13edee9654852559932bf0390
+
+--- caterva/caterva_ext.pyx.orig 2022-01-28 12:38:26 UTC
++++ caterva/caterva_ext.pyx
+@@ -48,7 +48,7 @@ cdef extern from "blosc2.h":
+ BLOSC2_MAX_FILTERS
+ BLOSC2_MAX_METALAYERS
+ BLOSC2_MAX_VLMETALAYERS
+- BLOSC_MAX_OVERHEAD
++ BLOSC2_MAX_OVERHEAD
+ BLOSC_ALWAYS_SPLIT = 1,
+ BLOSC_NEVER_SPLIT = 2,
+ BLOSC_AUTO_SPLIT = 3,
+@@ -130,7 +130,7 @@ cdef extern from "caterva.h":
+ ctypedef struct caterva_storage_t:
+ int32_t chunkshape[CATERVA_MAX_DIM]
+ int32_t blockshape[CATERVA_MAX_DIM]
+- bool sequencial
++ bool contiguous
+ char* urlpath
+ caterva_metalayer_t metalayers[CATERVA_MAX_METALAYERS]
+ int32_t nmetalayers
+@@ -195,8 +195,8 @@ cdef extern from "caterva.h":
+ int64_t *start, int64_t *stop, caterva_array_t *array);
+ int caterva_copy(caterva_ctx_t *ctx, caterva_array_t *src, caterva_storage_t *storage,
+ caterva_array_t ** array);
+- int caterva_resize(caterva_array_t *array,
+- int64_t *new_shape);
++ int caterva_resize(caterva_ctx_t *ctx, caterva_array_t *array, int64_t *new_shape,
++ const int64_t *start);
+
+ # Defaults for compression params
+ config_dflts = {
+@@ -269,7 +269,7 @@ cdef create_caterva_storage(caterva_storage_t *storage
+ chunks = kwargs.get('chunks', None)
+ blocks = kwargs.get('blocks', None)
+ urlpath = kwargs.get('urlpath', None)
+- sequential = kwargs.get('sequential', False)
++ contiguous = kwargs.get('contiguous', False)
+ meta = kwargs.get('meta', None)
+
+ if not chunks:
+@@ -282,7 +282,7 @@ cdef create_caterva_storage(caterva_storage_t *storage
+ storage.urlpath = urlpath
+ else:
+ storage.urlpath = NULL
+- storage.sequencial = sequential
++ storage.contiguous = contiguous
+ for i in range(len(chunks)):
+ storage.chunkshape[i] = chunks[i]
+ storage.blockshape[i] = blocks[i]
+@@ -321,7 +321,7 @@ cdef class NDArray:
+ @property
+ def cratio(self):
+ """The compression ratio for this container."""
+- return self.size / (self.array.sc.cbytes + BLOSC_MAX_OVERHEAD * self.nchunks)
++ return self.size / (self.array.sc.cbytes + BLOSC2_MAX_OVERHEAD * self.nchunks)
+
+ @property
+ def clevel(self):
+@@ -517,10 +517,11 @@ def copy(NDArray arr, NDArray src, **kwargs):
+ return arr
+
+ def resize(NDArray arr, new_shape):
++ ctx = Context(**arr.kwargs)
+ cdef int64_t new_shape_[CATERVA_MAX_DIM]
+ for i, s in enumerate(new_shape):
+ new_shape_[i] = s
+- caterva_resize(arr.array, new_shape_)
++ caterva_resize(ctx.context_, arr.array, new_shape_, NULL)
+ return arr
+
+ def from_file(NDArray arr, urlpath, **kwargs):
diff --git a/databases/py-caterva/files/patch-caterva-constructors.py b/databases/py-caterva/files/patch-caterva-constructors.py
new file mode 100644
index 000000000000..9ee3fd4b9887
--- /dev/null
+++ b/databases/py-caterva/files/patch-caterva-constructors.py
@@ -0,0 +1,13 @@
+--- caterva/constructors.py.orig 2022-01-28 12:38:26 UTC
++++ caterva/constructors.py
+@@ -34,8 +34,8 @@ def empty(shape, itemsize, **kwargs):
+ urlpath: str or None
+ The name of the file to store data. If `None`, data is stored in-memory.
+ (Default `None`)
+- sequential: bool or None
+- Whether the data is stored sequentially or sparsely (one chunk per file).
++ contiguous: bool or None
++ Whether the data is stored contiguously or sparsely (one chunk per file).
+ If `None`, data is stored sparsely.
+ memframe: bool
+ If True, the array is backed by a frame in-memory. Else, by a super-chunk.
diff --git a/databases/py-caterva/files/patch-tests-test_metalayers.py b/databases/py-caterva/files/patch-tests-test_metalayers.py
new file mode 100644
index 000000000000..226a0ed9954a
--- /dev/null
+++ b/databases/py-caterva/files/patch-tests-test_metalayers.py
@@ -0,0 +1,29 @@
+--- tests/test_metalayers.py.orig 2022-01-28 12:38:26 UTC
++++ tests/test_metalayers.py
+@@ -13,7 +13,7 @@ import os
+ from msgpack import packb
+
+
+-@pytest.mark.parametrize("sequencial",
++@pytest.mark.parametrize("contiguous",
+ [
+ True,
+ False,
+@@ -24,7 +24,7 @@ from msgpack import packb
+ ([20, 134, 13], [12, 66, 8], [3, 13, 5], "testmeta01.cat", np.int32),
+ ([12, 13, 14, 15, 16], [8, 9, 4, 12, 9], [2, 6, 4, 5, 4], "testmeta02.cat", np.float32)
+ ])
+-def test_metalayers(shape, chunks, blocks, urlpath, sequencial, dtype):
++def test_metalayers(shape, chunks, blocks, urlpath, contiguous, dtype):
+ if os.path.exists(urlpath):
+ cat.remove(urlpath)
+
+@@ -34,7 +34,7 @@ def test_metalayers(shape, chunks, blocks, urlpath, se
+ # Create an empty caterva array (on disk)
+ itemsize = np.dtype(dtype).itemsize
+ a = cat.empty(shape, itemsize, chunks=chunks, blocks=blocks,
+- urlpath=urlpath, sequencial=sequencial,
++ urlpath=urlpath, contiguous=contiguous,
+ meta={"numpy": numpy_meta,
+ "test": test_meta})
+
diff --git a/databases/py-caterva/files/patch-tests-test_persistency.py b/databases/py-caterva/files/patch-tests-test_persistency.py
new file mode 100644
index 000000000000..647c43024c79
--- /dev/null
+++ b/databases/py-caterva/files/patch-tests-test_persistency.py
@@ -0,0 +1,28 @@
+--- tests/test_persistency.py.orig 2022-01-28 12:38:26 UTC
++++ tests/test_persistency.py
+@@ -12,7 +12,7 @@ import numpy as np
+ import os
+
+
+-@pytest.mark.parametrize("sequencial",
++@pytest.mark.parametrize("contiguous",
+ [
+ True,
+ False,
+@@ -23,14 +23,14 @@ import os
+ ([20, 134, 13], [7, 22, 5], [3, 5, 3], "test01.cat", np.int32),
+ ([12, 13, 14, 15, 16], [4, 6, 4, 7, 5], [2, 4, 2, 3, 3], "test02.cat", np.float32)
+ ])
+-def test_persistency(shape, chunks, blocks, urlpath, sequencial, dtype):
++def test_persistency(shape, chunks, blocks, urlpath, contiguous, dtype):
+ if os.path.exists(urlpath):
+ cat.remove(urlpath)
+
+ size = int(np.prod(shape))
+ nparray = np.arange(size, dtype=dtype).reshape(shape)
+ _ = cat.asarray(nparray, chunks=chunks, blocks=blocks,
+- urlpath=urlpath, sequencial=sequencial)
++ urlpath=urlpath, contiguous=contiguous)
+ b = cat.open(urlpath)
+
+ bc = b[:]