Skip to main content

HDF5 Plugins for windows,MacOS and linux

Project description

This module provides HDF5 compression filters (namely: blosc, bitshuffle and lz4) and registers them to the HDF5 library used by h5py.

  • Supported operating systems: Linux, Windows, macOS.

  • Supported versions of Python: 2.7 and >= 3.4

hdf5plugin provides a generic way to enable the use of the provided HDF5 compression filters with h5py that can be installed via pip or conda.

Alternatives to install HDF5 compression filters are: system-wide installation on Linux or other conda packages: blosc-hdf5-plugin, hdf5-lz4.

The HDF5 plugin sources were obtained from:

Installation

To install, run:

pip install hdf5plugin [--user]

or, with conda (https://anaconda.org/conda-forge/hdf5plugin):

conda install -c conda-forge hdf5plugin

To install from source and recompile the HDF5 plugins, run:

pip install hdf5plugin --no-binary hdf5plugin [--user]

Installing from source can achieve better performances by enabling AVX2 and OpenMP if available.

Documentation

To use it, just use import hdf5plugin and supported compression filters are available from h5py.

Sample code:

import numpy
import h5py
import hdf5plugin

# Compression
f = h5py.File('test.h5', 'w')
f.create_dataset('data', data=numpy.arange(100), **hdf5plugin.LZ4())
f.close()

# Decompression
f = h5py.File('test.h5', 'r')
data = f['data'][()]
f.close()

hdf5plugin provides:

Bitshuffle(nelems=0, lz4=True)

This class takes the following arguments and returns the compression options to feed into h5py.Group.create_dataset for using the bitshuffle filter:

  • nelems the number of elements per block, needs to be divisible by eight (default is 0, about 8kB per block)

  • lz4 if True the elements get compressed using lz4 (default is True)

It can be passed as keyword arguments.

Sample code:

f = h5py.File('test.h5', 'w')
f.create_dataset('bitshuffle_with_lz4', data=numpy.arange(100),
      **hdf5plugin.Bitshuffle(nelems=0, lz4=True))
f.close()

Blosc(cname=’lz4’, clevel=5, shuffle=SHUFFLE)

This class takes the following arguments and returns the compression options to feed into h5py.Group.create_dataset for using the blosc filter:

  • cname the compression algorithm, one of:

    • ‘blosclz’

    • ‘lz4’ (default)

    • ‘lz4hc’

    • ‘snappy’ (optional, requires C++11)

    • ‘zlib’

    • ‘zstd’

  • clevel the compression level, from 0 to 9 (default is 5)

  • shuffle the shuffling mode, in:

    • Blosc.NOSHUFFLE (0): No shuffle

    • Blosc.SHUFFLE (1): byte-wise shuffle (default)

    • Blosc.BITSHUFFLE (2): bit-wise shuffle

It can be passed as keyword arguments.

Sample code:

f = h5py.File('test.h5', 'w')
f.create_dataset('blosc_byte_shuffle_blosclz', data=numpy.arange(100),
    **hdf5plugin.Blosc(cname='blosclz', clevel=9, shuffle=hdf5plugin.Blosc.SHUFFLE))
f.close()

LZ4(nbytes=0)

This class takes the number of bytes per block as argument and returns the compression options to feed into h5py.Group.create_dataset for using the lz4 filter:

  • nbytes number of bytes per block needs to be in the range of 0 < nbytes < 2113929216 (1,9GB). The default value is 0 (for 1GB).

It can be passed as keyword arguments.

Sample code:

f = h5py.File('test.h5', 'w')
f.create_dataset('lz4', data=numpy.arange(100),
    **hdf5plugin.LZ4(nbytes=0))
f.close()

Dependencies

Testing

To run self-contained tests, from Python:

import hdf5plugin.test
hdf5plugin.test.run_tests()

Or, from the command line:

python -m hdf5plugin.test

To also run tests relying on actual HDF5 files, run from the source directory:

python test/test.py

This tests the installed version of hdf5plugin.

License

The source code of hdf5plugin itself is licensed under the MIT license. Use it at your own risk. See LICENSE

The source code of the embedded HDF5 filter plugin libraries is licensed under different open-source licenses. Please read the different licenses:

The HDF5 v1.10.5 headers (and Windows .lib file) used to build the filters are stored for convenience in the repository. The license is available here: src/hdf5/COPYING.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hdf5plugin-2.1.1.tar.gz (4.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

hdf5plugin-2.1.1-py3-none-win_amd64.whl (314.1 kB view details)

Uploaded Python 3Windows x86-64

hdf5plugin-2.1.1-py2.py3-none-manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded Python 2Python 3

hdf5plugin-2.1.1-py2.py3-none-manylinux1_x86_64.whl (2.4 MB view details)

Uploaded Python 2Python 3

hdf5plugin-2.1.1-py2.py3-none-macosx_10_9_x86_64.whl (684.0 kB view details)

Uploaded Python 2Python 3macOS 10.9+ x86-64

hdf5plugin-2.1.1-py2-none-win_amd64.whl (435.8 kB view details)

Uploaded Python 2Windows x86-64

File details

Details for the file hdf5plugin-2.1.1.tar.gz.

File metadata

  • Download URL: hdf5plugin-2.1.1.tar.gz
  • Upload date:
  • Size: 4.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.1.1.tar.gz
Algorithm Hash digest
SHA256 95f03d9d0ec97c40c4e7e9b0438e981329c74e85f4645787786d72b615a0787d
MD5 f3de08f7cb9abfa7a214db92dc660bcf
BLAKE2b-256 0723395d6bcfd3e7deb0ad6b68b88386d90b98e2a62ff07d52166fdb2b6d5050

See more details on using hashes here.

File details

Details for the file hdf5plugin-2.1.1-py3-none-win_amd64.whl.

File metadata

  • Download URL: hdf5plugin-2.1.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 314.1 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.1.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 9d9487d45550b3518ab5ff78e23bef1ff88a8329d71eaa67b629e347e9a98f81
MD5 f5011e6b910a09fd8ea2b81a3bb09e45
BLAKE2b-256 c4c9f07213ab24617dac8f477b3eabc23266fc53e72041738d813fcf16a60b6f

See more details on using hashes here.

File details

Details for the file hdf5plugin-2.1.1-py2.py3-none-manylinux2014_x86_64.whl.

File metadata

  • Download URL: hdf5plugin-2.1.1-py2.py3-none-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.1.1-py2.py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c753b3cc13485c981ee46553add393eb1ceca8f303d69a24f4975e13e6820eb3
MD5 34942665875eab014518a96f31899241
BLAKE2b-256 74964651a7daeff7b2c09b94bdb4c2b0289eaa46010fda4cb3f0f6c6c1bcd903

See more details on using hashes here.

File details

Details for the file hdf5plugin-2.1.1-py2.py3-none-manylinux1_x86_64.whl.

File metadata

  • Download URL: hdf5plugin-2.1.1-py2.py3-none-manylinux1_x86_64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.1.1-py2.py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 de41c488395d0a7fdf96e5c7cfa5c01a8a5dd1fef2476f5b8d800b41eccc2be0
MD5 a8672e5b85a167ca939ccf0eff1dc065
BLAKE2b-256 83897a8f03277e2ab5738367dcfb34cc22aaa707f7fb5162a00431cdcc9df126

See more details on using hashes here.

File details

Details for the file hdf5plugin-2.1.1-py2.py3-none-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: hdf5plugin-2.1.1-py2.py3-none-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 684.0 kB
  • Tags: Python 2, Python 3, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.1.1-py2.py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f88bd2fd19a565b86009930143bf50637df8f866b0385c76ed344cdcdde2b235
MD5 8013646fbba16898bba4fbf0ae3b3b88
BLAKE2b-256 133b10a51b96bb837acdac49e74d8ccdbdce5baf5bc02371b4571c335f26231e

See more details on using hashes here.

File details

Details for the file hdf5plugin-2.1.1-py2-none-win_amd64.whl.

File metadata

  • Download URL: hdf5plugin-2.1.1-py2-none-win_amd64.whl
  • Upload date:
  • Size: 435.8 kB
  • Tags: Python 2, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.1.1-py2-none-win_amd64.whl
Algorithm Hash digest
SHA256 7b330f9f2dc21c2f0ba1e7d68ffae90332f2c8f13e2aad6112d460aaa8312727
MD5 deaf3c52bed66df6dd3fd3c562bac947
BLAKE2b-256 e1112ee4858f9be0e53941387079cabc652ff84c8b4055c5dc1746097e9edd25

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page