Skip to content

Commit eac4ef1

Browse files
committed
Use ensure_contiguous_memoryview
1 parent 54fd4b2 commit eac4ef1

File tree

3 files changed

+15
-33
lines changed

3 files changed

+15
-33
lines changed

numcodecs/blosc.pyx

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ import os
99
from deprecated import deprecated
1010

1111

12-
from cpython.buffer cimport PyBuffer_IsContiguous
1312
from cpython.bytes cimport (
1413
PyBytes_AS_STRING,
1514
PyBytes_FromStringAndSize,
1615
)
1716
from cpython.memoryview cimport PyMemoryView_GET_BUFFER
1817

18+
from .compat_ext cimport ensure_continguous_memoryview
1919

2020
from .compat import ensure_contiguous_ndarray
2121
from .abc import Codec
@@ -168,10 +168,8 @@ def _cbuffer_sizes(source):
168168
size_t nbytes, cbytes, blocksize
169169

170170
# obtain source memoryview
171-
source_mv = memoryview(source)
171+
source_mv = ensure_continguous_memoryview(source)
172172
source_pb = PyMemoryView_GET_BUFFER(source_mv)
173-
if not PyBuffer_IsContiguous(source_pb, b'A'):
174-
raise BufferError("`source` must contain contiguous memory")
175173

176174
# determine buffer size
177175
blosc_cbuffer_sizes(source_pb.buf, &nbytes, &cbytes, &blocksize)
@@ -187,10 +185,8 @@ def cbuffer_complib(source):
187185
const Py_buffer* source_pb
188186

189187
# obtain source memoryview
190-
source_mv = memoryview(source)
188+
source_mv = ensure_continguous_memoryview(source)
191189
source_pb = PyMemoryView_GET_BUFFER(source_mv)
192-
if not PyBuffer_IsContiguous(source_pb, b'A'):
193-
raise BufferError("`source` must contain contiguous memory")
194190

195191
# determine buffer size
196192
complib = blosc_cbuffer_complib(source_pb.buf)
@@ -219,10 +215,8 @@ def _cbuffer_metainfo(source):
219215
int flags
220216

221217
# obtain source memoryview
222-
source_mv = memoryview(source)
218+
source_mv = ensure_continguous_memoryview(source)
223219
source_pb = PyMemoryView_GET_BUFFER(source_mv)
224-
if not PyBuffer_IsContiguous(source_pb, b'A'):
225-
raise BufferError("`source` must contain contiguous memory")
226220

227221
# determine buffer size
228222
blosc_cbuffer_metainfo(source_pb.buf, &typesize, &flags)
@@ -289,10 +283,8 @@ def compress(source, char* cname, int clevel, int shuffle=SHUFFLE,
289283
_err_bad_cname(cname_str)
290284

291285
# obtain source memoryview
292-
source_mv = memoryview(source)
286+
source_mv = ensure_continguous_memoryview(source)
293287
source_pb = PyMemoryView_GET_BUFFER(source_mv)
294-
if not PyBuffer_IsContiguous(source_pb, b'A'):
295-
raise BufferError("`source` must contain contiguous memory")
296288

297289
# extract metadata
298290
source_ptr = <const char*>source_pb.buf
@@ -393,10 +385,8 @@ def decompress(source, dest=None):
393385
size_t nbytes, cbytes, blocksize
394386

395387
# obtain source memoryview
396-
source_mv = memoryview(source)
388+
source_mv = ensure_continguous_memoryview(source)
397389
source_pb = PyMemoryView_GET_BUFFER(source_mv)
398-
if not PyBuffer_IsContiguous(source_pb, b'A'):
399-
raise BufferError("`source` must contain contiguous memory")
400390

401391
# get source pointer
402392
source_ptr = <const char*>source_pb.buf
@@ -480,10 +470,8 @@ def _decompress_partial(source, start, nitems, dest=None):
480470
size_t dest_nbytes
481471

482472
# obtain source memoryview
483-
source_mv = memoryview(source)
473+
source_mv = ensure_continguous_memoryview(source)
484474
source_pb = PyMemoryView_GET_BUFFER(source_mv)
485-
if not PyBuffer_IsContiguous(source_pb, b"A"):
486-
raise BufferError("`source` must contain contiguous memory")
487475

488476
# setup source pointer
489477
source_ptr = <const char*>source_pb.buf

numcodecs/lz4.pyx

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@
77

88
from libc.stdint cimport uint8_t, uint32_t
99

10-
from cpython.buffer cimport PyBuffer_IsContiguous
1110
from cpython.bytes cimport (
1211
PyBytes_AS_STRING,
1312
PyBytes_FromStringAndSize,
1413
)
1514
from cpython.memoryview cimport PyMemoryView_GET_BUFFER
1615

16+
from .compat_ext cimport ensure_continguous_memoryview
1717
from ._utils cimport store_le32, load_le32
18+
1819
from .compat import ensure_contiguous_ndarray
1920
from .abc import Codec
2021

@@ -88,10 +89,8 @@ def compress(source, int acceleration=DEFAULT_ACCELERATION):
8889
acceleration = DEFAULT_ACCELERATION
8990

9091
# setup source buffer
91-
source_mv = memoryview(source)
92+
source_mv = ensure_continguous_memoryview(source)
9293
source_pb = PyMemoryView_GET_BUFFER(source_mv)
93-
if not PyBuffer_IsContiguous(source_pb, b'A'):
94-
raise BufferError("`source` must contain contiguous memory")
9594

9695
# extract metadata
9796
source_ptr = <const char*>source_pb.buf
@@ -151,10 +150,8 @@ def decompress(source, dest=None):
151150
int source_size, dest_size, decompressed_size
152151

153152
# setup source buffer
154-
source_mv = memoryview(source)
153+
source_mv = ensure_continguous_memoryview(source)
155154
source_pb = PyMemoryView_GET_BUFFER(source_mv)
156-
if not PyBuffer_IsContiguous(source_pb, b'A'):
157-
raise BufferError("`source` must contain contiguous memory")
158155

159156
# extract source metadata
160157
source_ptr = <const char*>source_pb.buf

numcodecs/zstd.pyx

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
# cython: language_level=3
66

77

8-
from cpython.buffer cimport PyBuffer_IsContiguous
98
from cpython.bytes cimport (
109
PyBytes_AS_STRING,
1110
PyBytes_FromStringAndSize,
1211
)
1312
from cpython.memoryview cimport PyMemoryView_GET_BUFFER
1413

14+
from .compat_ext cimport ensure_continguous_memoryview
15+
1516
from .compat import ensure_contiguous_ndarray
1617
from .abc import Codec
1718

@@ -112,10 +113,8 @@ def compress(source, int level=DEFAULT_CLEVEL, bint checksum=False):
112113
level = MAX_CLEVEL
113114

114115
# obtain source memoryview
115-
source_mv = memoryview(source)
116+
source_mv = ensure_continguous_memoryview(source)
116117
source_pb = PyMemoryView_GET_BUFFER(source_mv)
117-
if not PyBuffer_IsContiguous(source_pb, b'A'):
118-
raise BufferError("`source` must contain contiguous memory")
119118

120119
# setup source buffer
121120
source_ptr = <const char*>source_pb.buf
@@ -187,10 +186,8 @@ def decompress(source, dest=None):
187186
size_t nbytes, cbytes, blocksize
188187

189188
# obtain source memoryview
190-
source_mv = memoryview(source)
189+
source_mv = ensure_continguous_memoryview(source)
191190
source_pb = PyMemoryView_GET_BUFFER(source_mv)
192-
if not PyBuffer_IsContiguous(source_pb, b'A'):
193-
raise BufferError("`source` must contain contiguous memory")
194191

195192
# get source pointer
196193
source_ptr = <const char*>source_pb.buf

0 commit comments

Comments
 (0)