What My Project Does
I kept running into the same friction in ML projects — managing config files,
environment variables, and CLI args separately, writing boilerplate to merge
them, and losing track of what parameters ran in which experiment.
ParamFlow solves this with a single call:
import paramflow as pf
params = pf.load('params.toml')
print(params.learning_rate) # 0.001
print(params.batch_size) # 64
It merges config files, env vars, and CLI args in a defined order, activates
named profiles, and returns a plain Python dict — no conversion needed, works
with json.dumps, **unpacking, any serialization library.
No schemas, no type annotations — types are inferred from the config file values.
You can override any parameter at runtime without touching the code:
python train.py --profile large --learning_rate 0.0005
or
P_LEARNING_RATE=0.0005 python train.py
Target Audience
Python developers who need simple, flexible config management. Particularly
useful for ML/research projects where reproducibility matters — every run logs
exactly what parameters were used.
GitHub: https://github.com/mduszyk/paramflow
PyPI: https://pypi.org/project/paramflow/
Top comments (0)