Skip to main content

H5config

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:

experiment.h5
|-- 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

Installation

Packages

Gentoo

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

Dependencies

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://tremily.us/

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

$ python setup.py install

Usage

See the module docstrings for simple examples.

Testing

Run internal unit tests with:

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

Licence

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

Author

W. Trevor King wking@tremily.us

Release files for h5config 0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for h5config 0.3
File Size Uploaded
h5config-0.3.tar.gz 25.4 kB Details

Release files / h5config-0.3.tar.gz

Download URL h5config-0.3.tar.gz
Size 25.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b6e0cb957a86dccbef181bef83bf31d2c7fa16fdad42886b9b4f808a4e5598ea
BLAKE2b-256 checksum
How to use checksums
a5f65ed790e598d1d6c5f7a661438ae60da6154db633ee3a2ae967318b48e640
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.3 This release

1 release file

0.2

1 release file

0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page