Create Dataclasses for Spec Blocks
Open
@bgunnar5 is already working on this.
Since Sep 10, 2025.
Merlin 2.0
refactor
- Dominant language
- Python
- Stars
- 151
- Forks
- 30
- PR merge metrics
- No merged PRs in 30d
Description
The specification file is loaded in using dictionaries for each block and a json schema file to validate them. If we're going to open the Python API then it would be better to load in each block using a data class and a post_init method for validation (if necessary). Each block's data class could even have sub classes (e.g., StudyConfig -> StepConfig, MerlinResourcesConfig -> WorkerConfig, etc.). This would likely be good to work on at the Maestro level first and then propagate up to Merlin.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.