# StudyPype

> StudyPype is a lightweight MIT-licensed Python toolkit that turns YAML study
> definitions into transparent, folder-based research workflows with explicit
> parameter sweeps, dependencies, and parallel execution.

StudyPype is authored solely by Johannes Maierhofer. It requires Python 3.13 or
newer and uses PyYAML.

## Core semantics

- `!sweep` is the only parameter fan-out marker in StudyPype.
- Plain YAML lists are always regular values.
- YAML containing `!sweep` is loaded with `studypype.load_yaml(...)` or
  `studypype.load_yaml_file(...)`.
- Independent explicit sweeps form a Cartesian product.
- Study jobs and intermediate results are organized as an inspectable directory
  tree.

## Documentation

- [Project overview and API examples](README.md)
- [Interactive tutorial](tutorial/Tutorial.ipynb)
- [Runnable example](example/basic_example.py)
- [Contribution guide](CONTRIBUTING.md)
- [Citation metadata](CITATION.cff)
- [MIT license](LICENSE)
- [Reusable StudyPype agent skill](.agents/skills/studypype/SKILL.md)

## Package entry points

The public Python API is exposed by the `studypype` package. Common interfaces
include `Tree`, `Sweep`, `load_yaml`, `load_yaml_file`, `Job`, `register_job`,
and `job_runner`.
