Skip to content

Commit 36c75e0

Browse files
authored
Merge pull request #22 from alimanfoo/zstd
Add Zstd, LZ4. Resolves #3.
2 parents 73feb8f + a89526b commit 36c75e0

File tree

20 files changed

+20205
-1730
lines changed

20 files changed

+20205
-1730
lines changed

MANIFEST.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
recursive-include c-blosc *
22
recursive-include numcodecs *.pyx
3+
recursive-include numcodecs *.pxd
34
recursive-include numcodecs *.c
5+
recursive-include numcodecs *.h
46
include cpuinfo.py

appveyor.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
branches:
2+
only:
3+
- master
4+
15
environment:
26

37
global:

docs/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ Contents
5151
abc
5252
registry
5353
blosc
54+
lz4
55+
zstd
5456
zlib
5557
bz2
5658
lzma

docs/lz4.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
LZ4
2+
===
3+
.. automodule:: numcodecs.lz4
4+
5+
.. autoclass:: LZ4
6+
7+
.. autoattribute:: codec_id
8+
9+
.. autofunction:: compress
10+
.. autofunction:: decompress

docs/release.rst

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
Release notes
22
=============
33

4+
.. _release_0.1.0:
5+
6+
0.1.0
7+
-----
8+
9+
TODO
10+
11+
* Two new compressor codecs :class:`numcodecs.zstd.Zstd` and :class:`numcodecs.lz4.LZ4`
12+
have been added (`#3 <https://github.com/alimanfoo/numcodecs/issues/3>`_,
13+
`#22 <https://github.com/alimanfoo/numcodecs/issues/22>`_). These provide direct support for
14+
compression/decompression using `Zstandard <https://github.com/facebook/zstd>`_ and
15+
`LZ4 <https://github.com/lz4/lz4>`_ respectively.
16+
417
.. _release_0.0.1:
518

619
0.0.1
@@ -19,7 +32,7 @@ the original Zarr module:
1932

2033
* Codec classes have been re-organized into separate modules, mostly one per
2134
codec class, for ease of maintenance.
22-
* Two new codec classes have been added based on 32-bit checksums: CRC32 and
23-
Adler32.
35+
* Two new codec classes have been added based on 32-bit checksums:
36+
:class:`numcodecs.checksum32.CRC32` and :class:`numcodecs.checksum32.Adler32`.
2437
* The Blosc extension has been refactored to remove code duplications related
2538
to handling of buffer compatibility.

docs/zstd.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Zstd
2+
====
3+
.. automodule:: numcodecs.zstd
4+
5+
.. autoclass:: Zstd
6+
7+
.. autoattribute:: codec_id
8+
9+
.. autofunction:: compress
10+
.. autofunction:: decompress

numcodecs/__init__.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,28 @@
3939
pass
4040

4141
try:
42-
from numcodecs import blosc as _blosc
42+
from numcodecs import blosc
4343
from numcodecs.blosc import Blosc
4444
register_codec(Blosc)
4545
# initialize blosc
4646
ncores = multiprocessing.cpu_count()
47-
_blosc.init()
48-
_blosc.set_nthreads(min(8, ncores))
49-
atexit.register(_blosc.destroy)
47+
blosc.init()
48+
blosc.set_nthreads(min(8, ncores))
49+
atexit.register(blosc.destroy)
50+
except ImportError: # pragma: no cover
51+
pass
52+
53+
try:
54+
from numcodecs import zstd
55+
from numcodecs.zstd import Zstd
56+
register_codec(Zstd)
57+
except ImportError: # pragma: no cover
58+
pass
59+
60+
try:
61+
from numcodecs import lz4
62+
from numcodecs.lz4 import LZ4
63+
register_codec(LZ4)
5064
except ImportError: # pragma: no cover
5165
pass
5266

0 commit comments

Comments
 (0)