Skip to content

Commit

Permalink
adds wrapper codecs for the v2 codec pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
normanrz committed Jun 24, 2024
1 parent 947dd2e commit e0dee3c
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
7 changes: 7 additions & 0 deletions numcodecs/tests/test_zstd.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,10 @@ def test_checksum():
assert len(Zstd(level=0, checksum=False).encode(data)) + 4 == len(
Zstd(level=0, checksum=True).encode(data)
)


def test_native_functions():
# Note, these assertions might need to be changed for new versions of zstd
assert Zstd.default_level == 3
assert Zstd.min_level == -131072
assert Zstd.max_level == 22
17 changes: 17 additions & 0 deletions numcodecs/zstd.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@ cdef extern from "zstd.h":
unsigned long long ZSTD_getFrameContentSize(const void* src,
size_t srcSize) nogil

int ZSTD_minCLevel() nogil
int ZSTD_maxCLevel() nogil
int ZSTD_defaultCLevel() nogil

size_t ZSTD_compressBound(size_t srcSize) nogil

Expand Down Expand Up @@ -255,3 +257,18 @@ class Zstd(Codec):
(type(self).__name__,
self.level)
return r

@classmethod
@property
def default_level(cls):
return ZSTD_defaultCLevel()

@classmethod
@property
def min_level(cls):
return ZSTD_minCLevel()

@classmethod
@property
def max_level(cls):
return ZSTD_maxCLevel()

0 comments on commit e0dee3c

Please sign in to comment.