Skip to main content

viewh5

PyPI License

Read-only, keyboard-first HDF5 viewer built with Textual.

viewh5 demo

Install

uv tool install viewh5

Or install the latest version directly from GitHub:

uv tool install --from git+https://github.com/kabilan108/viewh5 viewh5

Run it with viewh5 open path/to/file.h5.

For a non-interactive summary, use:

viewh5 describe path/to/file.h5

Yazi Previews

viewh5 can be used as both the HDF5 opener and the previewer in Yazi. The preview flow is built around piper.yazi, which runs viewh5 describe and shows the resulting text in Yazi's preview pane.

  1. Install viewh5 so the viewh5 command is on your PATH.
uv tool install viewh5
  1. Install the piper.yazi plugin:
ya pkg add yazi-rs/plugins:piper
  1. Add the opener and preview rules to ~/.config/yazi/yazi.toml:
[opener]
h5 = [
  { run = 'viewh5 open "$@"', block = true, desc = "View HDF5 file" },
]

[open]
prepend_rules = [
  { url = "*.h5", use = [ "h5" ] },
  { url = "*.hdf5", use = [ "h5" ] },
  { url = "*.hdf", use = [ "h5" ] },
]

[plugin]
prepend_previewers = [
  { url = "*.h5", run = 'piper -- viewh5 describe --width "$w" --height "$h" "$1"' },
  { url = "*.hdf5", run = 'piper -- viewh5 describe --width "$w" --height "$h" "$1"' },
  { url = "*.hdf", run = 'piper -- viewh5 describe --width "$w" --height "$h" "$1"' },
]

After restarting Yazi, open on an HDF5 file will launch the full Textual app and hovering an HDF5 file will show the text summary in the preview pane.

Home Manager Setup

If you manage Yazi with Home Manager, the relevant configuration looks like:

programs.yazi = {
  enable = true;
  enableBashIntegration = true;
  plugins = {
    piper = pkgs.yaziPlugins.piper;
  };
  settings = {
    opener = {
      h5 = [
        { run = ''viewh5 open "$@"''; block = true; desc = "View HDF5 file"; }
      ];
    };
    open = {
      prepend_rules = [
        { url = "*.h5"; use = [ "h5" ]; }
        { url = "*.hdf5"; use = [ "h5" ]; }
        { url = "*.hdf"; use = [ "h5" ]; }
      ];
    };
    plugin = {
      prepend_previewers = [
        { url = "*.h5"; run = ''piper -- viewh5 describe --width "$w" --height "$h" "$1"''; }
        { url = "*.hdf5"; run = ''piper -- viewh5 describe --width "$w" --height "$h" "$1"''; }
        { url = "*.hdf"; run = ''piper -- viewh5 describe --width "$w" --height "$h" "$1"''; }
      ];
    };
  };
};

After rebuilding Home Manager, open on an HDF5 file will launch the full Textual app and hovering an HDF5 file will show the text summary in Yazi's preview pane.

Development

uv sync
uv run pytest
uv run ruff check
uv run ty check
uv run viewh5 open data/1520.h5
vhs assets/viewh5-demo.tape

To update snapshots after making changes to the TUI:

uv run pytest tests/test_snapshots.py --snapshot-update

To recreate the demo, make sure the project environment is synced and data/waveforms.h5 is present, then run vhs assets/viewh5-demo.tape.

Download files

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

Source Distribution

viewh5-0.3.2.tar.gz (596.2 kB view details)

Uploaded Source

Built Distribution

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

viewh5-0.3.2-py3-none-any.whl (29.7 kB view details)

Uploaded Python 3

File details

Details for the file viewh5-0.3.2.tar.gz.

File metadata

  • Download URL: viewh5-0.3.2.tar.gz
  • Upload date:
  • Size: 596.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for viewh5-0.3.2.tar.gz
Algorithm Hash digest
SHA256 06560db404431d5d1d17aec0cf088ef23d8790bbe81bd99c7641e020250a4592
MD5 148f199cc01c15d11c3872c543e26e78
BLAKE2b-256 0b9f23d6c1513a2535f1e0e3aaa6897ff3562b607aaaa7ff1f1aa126a3a68901

See more details on using hashes here.

File details

Details for the file viewh5-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: viewh5-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 29.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for viewh5-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 929dc9a8f6b299dabd7c7ff5285656a437d5595eb03de8961e332282711906eb
MD5 3c6291aa0ef0352f5a5ccdcb3de12d39
BLAKE2b-256 cfbb9ccc2941e8fd01e11b7f9692f597302fc1ba4cf796e5e104e2d9847e9431

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

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