Skip to content

Add pyiron_tables: HDF5-based job table nodes with no pyiron_base - #207

Open
prabhath-c wants to merge 2 commits into
mainfrom
pyiron_tables
Open

Add pyiron_tables: HDF5-based job table nodes with no pyiron_base#207
prabhath-c wants to merge 2 commits into
mainfrom
pyiron_tables

Conversation

@prabhath-c

@prabhath-c prabhath-c commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

This pull request introduces a new, dependency-free implementation of pyiron's job-table data mining functionality in the pyiron_nodes codebase, along with comprehensive documentation and a reference workflow. The new approach replaces the original pyiron_base/pyiron_atomistics dependency with lightweight, file-based operations, and establishes a clear, extensible pattern for adding new table properties as nodes. The most important changes are:

Core functionality: File-based job-table and property extraction

  • databases/pyiron_tables.py: Implements a full replacement for pyiron_base's job-table and PyironTable data mining, using only file-system and HDF5 access (no SQL/database or job objects). This includes functions for project indexing, job filtering, property extraction, and table construction, all operating directly on HDF5 files.

Node interface and extensibility

  • databases/pyiron_tables.py: Defines a clear, consistent pattern for adding new property-extracting nodes (AddBulkModulus, AddPotential, AddLatticeParameter), each wrapping a single property extraction function. These nodes can be daisy-chained to build up the set of columns for the job table, and are designed for easy extension.
  • databases/pyiron_tables.md: Provides detailed developer documentation describing the design, calling conventions, and extension checklist for adding new table property nodes, ensuring maintainability and ease of onboarding.

Reference workflow

  • Workflows/pyiron_table_potential_scan.py: Adds a reference workflow that reproduces the "Data mining using pyiron tables" notebook using the new node-based, dependency-free approach. This serves as both an example and a test for the new system.

These changes together establish a robust, extensible, and lightweight framework for job-table data mining in pyiron_nodes, decoupled from the legacy pyiron_base infrastructure.

…endency

Reads job data directly from project directories and job HDF5 files
(index_project, BuildTable) instead of going through pyiron_base's SQL
database or job objects. Each table property is one small get_<property>
function plus a matching Add<Property> node that daisy-chains a
{property: function} dict into BuildTable, documented in
databases/pyiron_tables.md for extending with new properties. Includes
pyiron_table_potential_scan.py as a worked reference workflow
(bulk_modulus/potential/lattice_parameter per potential, from Murnaghan jobs).
@prabhath-c prabhath-c changed the title Add pyiron_tables: HDF5-based job table nodes with no pyiron_base dep… Add pyiron_tables: HDF5-based job table nodes with no pyiron_base Aug 5, 2026
@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 40.66%. Comparing base (20f5c4e) to head (c4de71e).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #207      +/-   ##
==========================================
+ Coverage   31.25%   40.66%   +9.41%     
==========================================
  Files          90       94       +4     
  Lines       10184    11786    +1602     
==========================================
+ Hits         3183     4793    +1610     
+ Misses       7001     6993       -8     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants