Skip to main content

HDF5 Plugins for windows,MacOS and linux

Reason this release was yanked:

Missing python_requires>=3.4

Project description

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

  • Supported operating systems: Linux, Windows, macOS.

  • Supported versions of Python: >= 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()

FciDecomp()

This class returns the compression options to feed into h5py.Group.create_dataset for using the FciDecomp filter:

It can be passed as keyword arguments.

Sample code:

f = h5py.File('test.h5', 'w')
f.create_dataset('fcidecomp', data=numpy.arange(100),
    **hdf5plugin.FciDecomp())
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()

Zfp()

This class returns the compression options to feed into h5py.Group.create_dataset for using the zfp filter:

It can be passed as keyword arguments.

Sample code:

f = h5py.File('test.h5', 'w')
f.create_dataset('zfp', data=numpy.random.random(100),
    **hdf5plugin.Zfp())
f.close()

The zfp filter compression mode is defined by the provided arguments. The following compression modes are supported:

  • Fixed-rate mode: For details, see zfp fixed-rate mode.

    f.create_dataset('zfp_fixed_rate', data=numpy.random.random(100),
        **hdf5plugin.Zfp(rate=10.0))
  • Fixed-precision mode: For details, see zfp fixed-precision mode.

    f.create_dataset('zfp_fixed_precision', data=numpy.random.random(100),
        **hdf5plugin.Zfp(precision=10))
  • Fixed-accuracy mode: For details, see zfp fixed-accuracy mode.

    f.create_dataset('zfp_fixed_accuracy', data=numpy.random.random(100),
        **hdf5plugin.Zfp(accuracy=0.001))
  • Reversible (i.e., lossless) mode: For details, see zfp reversible mode.

    f.create_dataset('zfp_reversible', data=numpy.random.random(100),
        **hdf5plugin.Zfp(reversible=True))
  • Expert mode: For details, see zfp expert mode.

    f.create_dataset('zfp_expert', data=numpy.random.random(100),
        **hdf5plugin.Zfp(minbits=1, maxbits=16657, maxprec=64, minexp=-1074))

Zstd()

This class returns the compression options to feed into h5py.Group.create_dataset for using the Zstd filter:

It can be passed as keyword arguments.

Sample code:

f = h5py.File('test.h5', 'w')
f.create_dataset('zstd', data=numpy.arange(100),
    **hdf5plugin.Zstd())
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-3.0.0.tar.gz (11.1 MB view details)

Uploaded Source

Built Distributions

hdf5plugin-3.0.0-py3-none-win_amd64.whl (686.3 kB view details)

Uploaded Python 3 Windows x86-64

hdf5plugin-3.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.4 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ x86-64

hdf5plugin-3.0.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (8.2 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ppc64le

hdf5plugin-3.0.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (4.9 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ x86-64

hdf5plugin-3.0.0-py3-none-macosx_10_9_x86_64.whl (1.3 MB view details)

Uploaded Python 3 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: hdf5plugin-3.0.0.tar.gz
  • Upload date:
  • Size: 11.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.5.0.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-3.0.0.tar.gz
Algorithm Hash digest
SHA256 8c6f122f2ac23fe59c1f3f7fb636b405f2eded314945ce9a300435bc0006ef1a
MD5 07a49c5ec3aa6a6952081f4c80b95d0c
BLAKE2b-256 89fe205d6399b5b549e5719475e1103f4de4de0be60f7b2acb4535a19ac7b2c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-3.0.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 686.3 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.5.0.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-3.0.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0f1f677dd81c866a3d40088b7a254ed4177936759035f25a8e99d3b8263fe1e0
MD5 2fb5174121bf1a90a0b7a1bb35a704af
BLAKE2b-256 e63efde5644d143285e2e14806846231e2e65ade62e4e09d6efa62ac4aa863fc

See more details on using hashes here.

File details

Details for the file hdf5plugin-3.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hdf5plugin-3.0.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 22a6f7087f26cb95cf857268a5e32430def71e31c23bcd9619e5f6674f861f8e
MD5 e4a72f3cb177dde583eabfd59f5fe64d
BLAKE2b-256 a171fcc01bc34b48600d30dff5ec1483c01cee3260456fb0ce05839f22641574

See more details on using hashes here.

File details

Details for the file hdf5plugin-3.0.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for hdf5plugin-3.0.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 641b12a9d961edc670f445dc1dabd513fc46ff3cac1505933c9871be4e852fa1
MD5 6e35fe2d6acf03531cd2d89de39219f1
BLAKE2b-256 560d57022eb7077905f4b0fbdad2ca86b0f9b2781908d596e4758abcbf782738

See more details on using hashes here.

File details

Details for the file hdf5plugin-3.0.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for hdf5plugin-3.0.0-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 9c53f935cb301a85bb10c1986ef57d1d9b1c6b72a583b11b740b192e127785d6
MD5 8327e0b4eb6ec34c67d2cbae975a8acc
BLAKE2b-256 5493987e7acd7beab22bcc7270cd7d22a5ac380cfdaa290ec97910c7183658da

See more details on using hashes here.

File details

Details for the file hdf5plugin-3.0.0-py3-none-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: hdf5plugin-3.0.0-py3-none-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.5.0.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-3.0.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fdf0f003a28dab4c180c11cc3ee077acf5c50e89f195a8c6f8cfcb337cf57d94
MD5 c18196b4e322ea9596501ae814d88ffc
BLAKE2b-256 46f101f34eea57ff0839eea2396b3274c7f719a19ad49d409d58556c030a5eec

See more details on using hashes here.

Supported by

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