Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Conveniently save and load config-options from HDF5 and YAML files.

Project Description


H5config is a Python package for conviniently saving and loading configuration classes from disk. After populating base configuration classes with parameters, h5config automatically generates HDF5 and YAML backends for saving and loading that class. Yes, all this information could go into a single database, but if you like the flexibility of having a bunch of individual files that you can peek into one at a time, this module is for you.

I wrote the module to support my experiment-control infrastructure, and one of the key goals was to easily embed control parameters in the saved data:

|-- raw/
|   |-- thermocouple: [32757, 32731, 32796, 32789, 32809, ...]
|   `-- deflection: [29808, 29793, 29782, 29817, 29775, ...]
|-- timeseries-config/
|   |-- frequency: 0.1
|   |-- run-time: 100
|   |-- thermocouple-channel/
|   |   |-- conversion-coefficients: [-10.0, 0.000305180437934]
|   |   `-- conversion-origin: [0.0]
|   |-- deflection-channel/
|   |   |-- conversion-coefficients: [-10.0, 0.000305180437934]
|   |   `-- conversion-origin: [0.0]
|   `-- thermocouple-calibration: [25.08355e3, 7.860106e4]
`-- environment-config/
    |-- temperature: 20
    `-- timestamp: 1311851980.750180

Storing all of the calibration and conversion factors can get complicated quickly. h5config will keep you organized, and allow you to focus on defining the config options without getting bogged down in the bookkeeping.

As a side effect, h5config also provides some tools to support system- and user-wide configuration files. For example, the pypiezo package uses h5config to automatically detect and load the following config file:

$ cat ~/.config/pypiezo.yaml
log-level: debug
matplotlib: no




I’ve packaged h5config for Gentoo. You need layman and my wtk overlay. Install with:

# emerge -av app-portage/layman
# layman --add wtk
# emerge -av dev-python/h5config


If you’re installing by hand or packaging h5config for another distribution, you’ll need the following dependencies:

Package Debian Gentoo
H5Py python-h5py dev-python/h5py
Nose python-nose dev-python/nose
PyYAML python-pyyaml dev-python/pyyaml

Installing by hand

H5config is available as a Git repository:

$ git clone git://

See the homepage for details. To install the checkout, run the standard:

$ python install


See the module docstrings for simple examples.


Run internal unit tests with:

$ nosetests --with-doctest --doctest-tests h5config


This project is distributed under the GNU General Public License Version 3 or greater.


W. Trevor King

Release History

This version
History Node


History Node


History Node


Download Files

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

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(25.4 kB) Copy SHA256 Hash SHA256
Source None Mar 19, 2013

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Kabu Creative Kabu Creative UX & Design Google Google Cloud Servers Fastly Fastly CDN StatusPage StatusPage Statuspage DigiCert DigiCert EV Certificate