ParamFlow – lightweight layered configuration management for Python
Source: Dev.to
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) # 64It 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.0005or
P_LEARNING_RATE=0.0005 python train.pyTarget 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.