Skip to content

Commit 78ab6b5

Browse files
committed
Add mem_level argument
1 parent fe5b3c5 commit 78ab6b5

File tree

5 files changed

+28
-16
lines changed

5 files changed

+28
-16
lines changed

src/isal/igzip_lib.pxd

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -494,8 +494,9 @@ cdef int mem_level_to_bufsize(int compression_level, int mem_level, unsigned int
494494

495495
cpdef compress(data,
496496
int level= ?,
497-
unsigned short flag = ?,
498-
unsigned short hist_bits = ?,
497+
int flag = ?,
498+
int mem_level = ?,
499+
int hist_bits = ?,
499500
)
500501

501502
cpdef decompress(data,

src/isal/igzip_lib.pyi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ IsalError: OSError
4848

4949
def compress(data, level: int = ISAL_DEFAULT_COMPRESSION,
5050
flag: int = COMP_DEFLATE,
51+
mem_level: int = MEM_LEVEL_DEFAULT,
5152
hist_bits: int = MAX_HIST_BITS) -> bytes: ...
5253
def decompress(data, flag: int = DECOMP_DEFLATE,
5354
hist_bits: int = MAX_HIST_BITS,

src/isal/igzip_lib.pyx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,9 @@ cdef void arrange_input_buffer(stream_or_state *stream, Py_ssize_t *remains):
123123

124124
cpdef compress(data,
125125
int level=ISAL_DEFAULT_COMPRESSION_I,
126-
unsigned short flag = IGZIP_DEFLATE,
127-
unsigned short hist_bits = ISAL_DEF_MAX_HIST_BITS,
126+
int flag = IGZIP_DEFLATE,
127+
int mem_level = MEM_LEVEL_DEFAULT_I,
128+
int hist_bits = ISAL_DEF_MAX_HIST_BITS,
128129
):
129130
"""
130131
Compresses the bytes in *data*. Returns a bytes object with the

src/isal/isal_zlib.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ def compress(data,
209209
wbits_to_flag_and_hist_bits_deflate(wbits,
210210
&hist_bits,
211211
&flag)
212-
return igzip_compress(data, level, flag, hist_bits)
212+
return igzip_compress(data, level, flag, MEM_LEVEL_DEFAULT_I, hist_bits)
213213

214214
def decompress(data,
215215
int wbits=ISAL_DEF_MAX_HIST_BITS,

tests/test_igzip_lib.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@
2222
from typing import NamedTuple
2323

2424
from isal import igzip_lib
25+
from isal.igzip_lib import (
26+
COMP_DEFLATE, COMP_GZIP, COMP_GZIP_NO_HDR, COMP_ZLIB, COMP_ZLIB_NO_HDR,
27+
DECOMP_DEFLATE, DECOMP_GZIP, DECOMP_GZIP_NO_HDR, DECOMP_GZIP_NO_HDR_VER,
28+
DECOMP_ZLIB, DECOMP_ZLIB_NO_HDR, DECOMP_ZLIB_NO_HDR_VER, MEM_LEVEL_DEFAULT,
29+
MEM_LEVEL_EXTRA_LARGE, MEM_LEVEL_LARGE, MEM_LEVEL_MEDIUM, MEM_LEVEL_MIN,
30+
MEM_LEVEL_SMALL)
2531

2632
import pytest
2733

@@ -38,19 +44,22 @@ class Flag(NamedTuple):
3844
COMPRESS_LEVELS = list(range(4))
3945
HIST_BITS = list(range(16))
4046
FLAGS = [
41-
Flag(igzip_lib.COMP_DEFLATE, igzip_lib.DECOMP_DEFLATE),
42-
Flag(igzip_lib.COMP_ZLIB, igzip_lib.DECOMP_ZLIB),
43-
Flag(igzip_lib.COMP_GZIP, igzip_lib.DECOMP_GZIP),
44-
Flag(igzip_lib.COMP_ZLIB_NO_HDR, igzip_lib.DECOMP_ZLIB_NO_HDR),
45-
Flag(igzip_lib.COMP_GZIP_NO_HDR, igzip_lib.DECOMP_GZIP_NO_HDR),
46-
Flag(igzip_lib.COMP_ZLIB_NO_HDR, igzip_lib.DECOMP_ZLIB_NO_HDR_VER),
47-
Flag(igzip_lib.COMP_GZIP_NO_HDR, igzip_lib.DECOMP_GZIP_NO_HDR_VER),
47+
Flag(COMP_DEFLATE, DECOMP_DEFLATE),
48+
Flag(COMP_ZLIB, DECOMP_ZLIB),
49+
Flag(COMP_GZIP, DECOMP_GZIP),
50+
Flag(COMP_ZLIB_NO_HDR, DECOMP_ZLIB_NO_HDR),
51+
Flag(COMP_GZIP_NO_HDR, DECOMP_GZIP_NO_HDR),
52+
Flag(COMP_ZLIB_NO_HDR, DECOMP_ZLIB_NO_HDR_VER),
53+
Flag(COMP_GZIP_NO_HDR, DECOMP_GZIP_NO_HDR_VER),
4854
]
55+
MEM_LEVELS = [MEM_LEVEL_DEFAULT, MEM_LEVEL_MIN, MEM_LEVEL_SMALL,
56+
MEM_LEVEL_MEDIUM, MEM_LEVEL_LARGE, MEM_LEVEL_EXTRA_LARGE]
4957

5058

51-
@pytest.mark.parametrize(["level", "flag", "hist_bits"],
52-
itertools.product(COMPRESS_LEVELS, FLAGS, HIST_BITS))
53-
def test_compress_decompress(level, flag: Flag, hist_bits):
54-
comp = igzip_lib.compress(DATA, level, flag.comp, hist_bits)
59+
@pytest.mark.parametrize(["level", "flag", "mem_level", "hist_bits"],
60+
itertools.product(
61+
COMPRESS_LEVELS, FLAGS, MEM_LEVELS, HIST_BITS))
62+
def test_compress_decompress(level, flag: Flag, mem_level, hist_bits):
63+
comp = igzip_lib.compress(DATA, level, flag.comp, mem_level, hist_bits)
5564
decomp = igzip_lib.decompress(comp, flag.decomp, hist_bits)
5665
assert decomp == DATA

0 commit comments

Comments
 (0)