@@ -9,13 +9,13 @@ import os
99from deprecated import deprecated
1010
1111
12- from cpython.buffer cimport PyBuffer_IsContiguous
1312from cpython.bytes cimport (
1413 PyBytes_AS_STRING,
1514 PyBytes_FromStringAndSize,
1615)
1716from cpython.memoryview cimport PyMemoryView_GET_BUFFER
1817
18+ from .compat_ext cimport ensure_continguous_memoryview
1919
2020from .compat import ensure_contiguous_ndarray
2121from .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
0 commit comments