Skip to main content

TUI application for navigating and viewing HDF5 files

Project description

h5tui-logo

Description

h5tui is a terminal user interface (TUI) application for viewing the contents of HDF5 files, a binary file format prevalent in scientific computing and data science, straight in the terminal. Its design is inspired by vim-motion-enabled terminal file managers, such as ranger, lf and yazi. This choice is natural since the HDF5 file format also adopts a directory structure for storing the data.

This project wouldn't have been possible without h5py for reading the HDF5 files, textual for building the UI, and plotext for plotting data straight in the terminal.

Demo

https://github.com/user-attachments/assets/356225e7-e2ab-457a-8e47-97c19efb5aaa

Installation

The package is hosted on PyPI and can be installed using pip:

pip install h5tui

Usage

Simply launch the application with an HDF5 file as an argument:

h5tui file.h5

File Navigation

h5tui starts at the root of the file and displays the contents of the root HDF5 group. The directory structure can be navigated using the arrow or standard vim motion keys, with the up/down (j/k) moving the cursor inside the current group, and left/right (h/l) for going to the parent or child HDF5 group. If the selected element is not an HDF5 group but an HDF5 dataset, then the dataset is displayed. If the entire dataset does not fit on the screen, it can be scrolled using the up/down j/k keybindings.

Plotting

h5tui provides convenient terminal plotting facilities using the plotext library. 1D arrays are displayed as scatter plots, and 2D arrays are shown as heatmaps. Higher dimensional tensors are not currently supported. The plotting can be toggled through the p keybinding while viewing a dataset.

Aggregation

h5tui also has limited data aggregation facilities for summarizing datasets. This can be activated through the a keybinding while viewing a dataset. Currently, this option will compute the min, max, and mean of the dataset but further statistics may be added in the future.

Dataset Format Options

The formatting of the dataset may be controlled using a couple of keybindings. Since HDF5 files often contain large datasets which, by default, will truncate the output if the number of elements exceeds 1000 (that is the numpy default). This behavior can be toggled using the t keybinding to display the entire dataset. Note that, currently, this operation is blocking, and therefore huge datasets might take some time to load. In addition, the s key toggles the scientific notation on and off (corresponding to the suppress option in numpys printing configuration).

Formatting keybindings:

  • t: toggle output truncation
  • s: toggle scientific notation

Limitations

  • There is no support for displaying HDF5 attributes (mostly because the HDF5 files that I work with don't rely on them). However, if there is demand, this functionality can be added.
  • There is no editing functionality, the contents of the HDF5 file cannot be modified through h5tui.
  • I have only tested dataset viewing and plotting for primitive types (strings, ints, floats) and arrays. Please let me know if you encounter any issues.

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

h5tui-0.1.8.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

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

h5tui-0.1.8-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file h5tui-0.1.8.tar.gz.

File metadata

  • Download URL: h5tui-0.1.8.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for h5tui-0.1.8.tar.gz
Algorithm Hash digest
SHA256 1aad0883b53000bd2cb18940e22a7f2a87930fab834366b3882b2d8e4cf645ee
MD5 fe9db03562626b5ffc83ca3cb9b584db
BLAKE2b-256 3ab0049ba2dd572bace6d5825868d7c8b62a4b93dc2b57038a6a8efa88d45216

See more details on using hashes here.

File details

Details for the file h5tui-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: h5tui-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for h5tui-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 11ad9205c4146348e3eb2315920c4ad8236c8737159bf033807dc2b571f20d99
MD5 700ab9cb9e2323651a669b9d87c0fa01
BLAKE2b-256 f0016466b82ca7c90226e826154e9fa99dd8643b226354624c39c7e48ef2c216

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