From 36d962177946682845f6157cc1042dddb0a44ea3 Mon Sep 17 00:00:00 2001 From: Kenneth Li Date: Fri, 27 Jun 2025 17:09:37 -0400 Subject: [PATCH] ensure_bytes on buf for pcodec decode --- numcodecs/pcodec.py | 3 ++- numcodecs/tests/common.py | 10 ---------- numcodecs/tests/test_pcodec.py | 8 ++++---- 3 files changed, 6 insertions(+), 15 deletions(-) diff --git a/numcodecs/pcodec.py b/numcodecs/pcodec.py index 995a1ce0..e214f781 100644 --- a/numcodecs/pcodec.py +++ b/numcodecs/pcodec.py @@ -1,7 +1,7 @@ from typing import Literal from numcodecs.abc import Codec -from numcodecs.compat import ensure_contiguous_ndarray +from numcodecs.compat import ensure_bytes, ensure_contiguous_ndarray from pcodec import ChunkConfig, DeltaSpec, ModeSpec, PagingSpec, standalone DEFAULT_MAX_PAGE_N = 262144 @@ -110,6 +110,7 @@ def encode(self, buf): return standalone.simple_compress(buf, config) def decode(self, buf, out=None): + buf = ensure_bytes(buf) if out is not None: out = ensure_contiguous_ndarray(out) standalone.simple_decompress_into(buf, out) diff --git a/numcodecs/tests/common.py b/numcodecs/tests/common.py index 75534fe8..da82d876 100644 --- a/numcodecs/tests/common.py +++ b/numcodecs/tests/common.py @@ -150,16 +150,6 @@ def check_encode_decode_array(arr, codec): assert_array_items_equal(arr, dec) -def check_encode_decode_array_to_bytes(arr, codec): - enc = codec.encode(arr) - dec = codec.decode(enc) - assert_array_items_equal(arr, dec) - - out = np.empty_like(arr) - codec.decode(enc, out=out) - assert_array_items_equal(arr, out) - - def check_config(codec): config = codec.get_config() # round-trip through JSON to check serialization diff --git a/numcodecs/tests/test_pcodec.py b/numcodecs/tests/test_pcodec.py index b35f618e..d0520b45 100644 --- a/numcodecs/tests/test_pcodec.py +++ b/numcodecs/tests/test_pcodec.py @@ -9,7 +9,7 @@ from numcodecs.tests.common import ( check_backwards_compatibility, check_config, - check_encode_decode_array_to_bytes, + check_encode_decode_array, check_err_decode_object_buffer, check_err_encode_object_buffer, check_repr, @@ -49,7 +49,7 @@ @pytest.mark.parametrize("arr", arrays) @pytest.mark.parametrize("codec", codecs) def test_encode_decode(arr, codec): - check_encode_decode_array_to_bytes(arr, codec) + check_encode_decode_array(arr, codec) def test_config(): @@ -61,13 +61,13 @@ def test_config(): def test_invalid_config_error(param): codec = PCodec(**{param: "bogus"}) with pytest.raises(ValueError): - check_encode_decode_array_to_bytes(arrays[0], codec) + check_encode_decode_array(arrays[0], codec) def test_invalid_delta_encoding_combo(): codec = PCodec(delta_encoding_order=2, delta_spec="none") with pytest.raises(ValueError): - check_encode_decode_array_to_bytes(arrays[0], codec) + check_encode_decode_array(arrays[0], codec) def test_repr():