Skip to content

Add parser coverage ai - #337

Closed
ndaelman-hu wants to merge 16 commits into
developfrom
add-parser-coverage-ai
Closed

Add parser coverage ai#337
ndaelman-hu wants to merge 16 commits into
developfrom
add-parser-coverage-ai

Conversation

@ndaelman-hu

Copy link
Copy Markdown
Contributor

Add an instruction set (executable on GitHub too) for an LLM Agent to produce a structured coverage overview of each parser.
These are stored as FEATURES.yml files under each parser folder.

Given that this feature has been tested and extended to other repos, and is now being requested by users, I think we can merge this.

ndaelman-hu and others added 14 commits December 6, 2025 12:36
…ocation

- Add metadata tracking requirements (last_updated, updated_by)
- Specify that model name must be retained in FEATURES.yml metadata
- Clarify to not annotate every line, only metadata section
- Update YAML schema template to include metadata section
- Consolidate copilot instructions to package root .github/ folder
- Remove duplicate file from electronicparsers/.github/
- Update file path references to electronicparsers/{parser_name}/FEATURES.yml
… and Wien2k parsers (#323)

* Add FEATURES.yml for Wannier90, Gaussian, ORCA, ABINIT, and Wien2k parsers
---
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ndaelman-hu <107392603+ndaelman-hu@users.noreply.github.com>
Apply GitHub copilot feedback: correct typo

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update all remaining FEATURES.yml files with source field compliance

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ndaelman-hu <107392603+ndaelman-hu@users.noreply.github.com>
@ndaelman-hu
ndaelman-hu requested a review from JFRudzinski June 18, 2026 13:34
@ndaelman-hu ndaelman-hu self-assigned this Jun 18, 2026
@ndaelman-hu ndaelman-hu added the feature / enhancement New feature or request label Jun 18, 2026
@ndaelman-hu

Copy link
Copy Markdown
Contributor Author

@ladinesa FYI

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a standardized, repo-local “parser coverage” documentation format (FEATURES.yml) for electronic-structure parsers, plus a Copilot instruction document describing the schema and how to maintain these files.

Changes:

  • Added .github/copilot-instructions.md describing the FEATURES.yml schema and maintenance rules.
  • Added FEATURES.yml coverage documents across many electronicparsers/*/ parser directories.
  • Documented parser-supported file formats and runschema capabilities with source pointers to implementation locations.

Reviewed changes

Copilot reviewed 43 out of 43 changed files in this pull request and generated 41 comments.

Show a summary per file
File Description
.github/copilot-instructions.md Adds the schema/maintenance instructions for FEATURES.yml.
electronicparsers/abacus/FEATURES.yml Adds ABACUS parser capability/file-format coverage documentation.
electronicparsers/abinit/FEATURES.yml Adds ABINIT parser capability/file-format coverage documentation.
electronicparsers/ams/FEATURES.yml Adds AMS parser capability/file-format coverage documentation.
electronicparsers/atk/FEATURES.yml Adds ATK parser capability/file-format coverage documentation.
electronicparsers/bigdft/FEATURES.yml Adds BigDFT parser capability/file-format coverage documentation.
electronicparsers/castep/FEATURES.yml Adds CASTEP parser capability/file-format coverage documentation.
electronicparsers/charmm/FEATURES.yml Adds CHARMM parser capability/file-format coverage documentation.
electronicparsers/cp2k/FEATURES.yml Adds CP2K parser capability/file-format coverage documentation.
electronicparsers/cpmd/FEATURES.yml Adds CPMD parser capability/file-format coverage documentation.
electronicparsers/crystal/FEATURES.yml Adds CRYSTAL parser capability/file-format coverage documentation.
electronicparsers/dmol3/FEATURES.yml Adds DMol3 parser capability/file-format coverage documentation.
electronicparsers/edmft/FEATURES.yml Adds eDMFT parser capability/file-format coverage documentation.
electronicparsers/elk/FEATURES.yml Adds Elk parser capability/file-format coverage documentation.
electronicparsers/exciting/FEATURES.yml Adds exciting parser capability/file-format coverage documentation.
electronicparsers/fhiaims/FEATURES.yml Adds FHI-aims parser capability/file-format coverage documentation.
electronicparsers/fleur/FEATURES.yml Adds FLEUR parser capability/file-format coverage documentation.
electronicparsers/fplo/FEATURES.yml Adds FPLO parser capability/file-format coverage documentation.
electronicparsers/gamess/FEATURES.yml Adds GAMESS parser capability/file-format coverage documentation.
electronicparsers/gaussian/FEATURES.yml Adds Gaussian parser capability/file-format coverage documentation.
electronicparsers/gpaw/FEATURES.yml Adds GPAW parser capability/file-format coverage documentation.
electronicparsers/magres/FEATURES.yml Adds magres parser capability/file-format coverage documentation.
electronicparsers/molcas/FEATURES.yml Adds Molcas parser capability/file-format coverage documentation.
electronicparsers/mopac/FEATURES.yml Adds MOPAC parser capability/file-format coverage documentation.
electronicparsers/nwchem/FEATURES.yml Adds NWChem parser capability/file-format coverage documentation.
electronicparsers/ocean/FEATURES.yml Adds OCEAN parser capability/file-format coverage documentation.
electronicparsers/octopus/FEATURES.yml Adds Octopus parser capability/file-format coverage documentation.
electronicparsers/onetep/FEATURES.yml Adds ONETEP parser capability/file-format coverage documentation.
electronicparsers/openmx/FEATURES.yml Adds OpenMX parser capability/file-format coverage documentation.
electronicparsers/orca/FEATURES.yml Adds ORCA parser capability/file-format coverage documentation.
electronicparsers/psi4/FEATURES.yml Adds Psi4 parser capability/file-format coverage documentation.
electronicparsers/qball/FEATURES.yml Adds Qball parser capability/file-format coverage documentation.
electronicparsers/qbox/FEATURES.yml Adds Qbox parser capability/file-format coverage documentation.
electronicparsers/quantumespresso/FEATURES.yml Adds Quantum ESPRESSO parser capability/file-format coverage documentation.
electronicparsers/siesta/FEATURES.yml Adds SIESTA parser capability/file-format coverage documentation.
electronicparsers/soliddmft/FEATURES.yml Adds solid_dmft parser capability/file-format coverage documentation.
electronicparsers/tbstudio/FEATURES.yml Adds TBStudio parser capability/file-format coverage documentation.
electronicparsers/turbomole/FEATURES.yml Adds TURBOMOLE parser capability/file-format coverage documentation.
electronicparsers/vasp/FEATURES.yml Adds VASP parser capability/file-format coverage documentation.
electronicparsers/w2dynamics/FEATURES.yml Adds w2dynamics parser capability/file-format coverage documentation.
electronicparsers/wannier90/FEATURES.yml Adds Wannier90 parser capability/file-format coverage documentation.
electronicparsers/wien2k/FEATURES.yml Adds WIEN2k parser capability/file-format coverage documentation.
electronicparsers/yambo/FEATURES.yml Adds Yambo parser capability/file-format coverage documentation.

Comment thread .github/copilot-instructions.md Outdated
Comment on lines +12 to +15
- name: "*.out"
supported: true
notes: "Primary output file"
source: "packages/nomad-parser-plugins-electronic/electronicparsers/yambo/parser.py:YamboParser.parse"
Comment on lines +12 to +15
- name: "*.h5"
supported: true
notes: "HDF5 output file"
source: "packages/nomad-parser-plugins-electronic/electronicparsers/w2dynamics/parser.py:W2DynamicsParser.parse"
Comment on lines +11 to +14
- name: "*.out"
supported: true
notes: "Primary output file"
source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse"
Comment on lines +11 to +14
- name: "*.tbm"
supported: true
notes: "JSON-based tight-binding model file"
source: "packages/nomad-parser-plugins-electronic/electronicparsers/tbstudio/parser.py:TBStudioParser.parse"
Comment thread electronicparsers/fhiaims/FEATURES.yml Outdated
Comment on lines +154 to +161
- QE is a suite: "pw.x (plane waves), cp.x (Car-Parrinello), ph.x (phonons), etc.'"
- "pw.x is the most commonly used program for DFT calculations"
- "Parser identifies program type from 'Program PWSCF.*starts' or similar patterns"
- "XML data files (data-file-schema.xml) provide structured output but text parsing is primary"
- calculation parameter in input: "'scf'', ''relax'', ''vc-relax'', ''md'', ''vc-md''"
- "Phonon calculations produce separate output files with dynamical matrices"
- "Post-processing codes (dos.x, projwfc.x) generate additional data files"
- Units: "Rydberg atomic units in input/output, converted to eV in parser'"
- "DOS calculation from Wannier interpolation"
- "Disentanglement of energy windows (inner/outer windows)"
- "Support for multiple projection orbital types (s, p, d, f, sp, sp2, sp3, sp3d, sp3d2)"
- Compatible with multiple DFT codes: "Quantum ESPRESSO, ABINIT, VASP, SIESTA, Wien2k, FLEUR, OpenMX, GPAW'"
Comment on lines +90 to +95
- Post-Hartree-Fock methods: "MP2, MP3, MP4, MP5, CCSD, CCSD(T), CI, QCISD'"
- Hybrid functionals: "B3LYP, B3PW91, PBE0, HSE06, M06, M11, etc.'"
- Range-separated functionals: "LC-ωPBE, CAM-B3LYP, ωB97, ωB97X, ωB97X-D'"
- Double-hybrid functionals: "B2PLYP, MPW2PLYP'"
- Semiempirical methods: "AM1, PM3, PM6, PM7'"
- Composite methods: "G1, G2, G3, CBS-4, CBS-Q, CBS-QB3'"
- "Molecular multipole moments (dipole, quadrupole)"
- "Orbital symmetry analysis"
- "Excited state calculations (TD-DFT, CIS, CASSCF)"
- Charge analysis: "Mulliken, NPA, Hirshfeld, APT'"
ndaelman-hu and others added 2 commits June 19, 2026 13:56
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@coveralls

Copy link
Copy Markdown

Coverage Report for CI Build 27824315126

Coverage increased (+0.2%) to 92.99%

Details

  • Coverage increased (+0.2%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 799 coverage regressions across 16 files.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

799 previously-covered lines in 16 files lost coverage.

Top 10 Files by Coverage Loss Lines Losing Coverage Coverage
electronicparsers/exciting/parser.py 303 71.18%
electronicparsers/cp2k/parser.py 116 80.78%
electronicparsers/fhiaims/parser.py 103 88.49%
electronicparsers/openmx/parser.py 55 84.88%
electronicparsers/utils/utils.py 51 19.63%
electronicparsers/gaussian/parser.py 31 92.27%
electronicparsers/ams/parser.py 22 95.77%
electronicparsers/abacus/parser.py 21 94.26%
electronicparsers/yambo/parser.py 18 90.46%
electronicparsers/gpaw/parser.py 17 88.83%

Coverage Stats

Coverage Status
Relevant Lines: 38716
Covered Lines: 36002
Line Coverage: 92.99%
Coverage Strength: 0.93 hits per line

💛 - Coveralls

@ndaelman-hu

Copy link
Copy Markdown
Contributor Author

FEATURES.yml and instructions already merged (by GitHub Copilot)

@ndaelman-hu
ndaelman-hu deleted the add-parser-coverage-ai branch June 19, 2026 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature / enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants