ParamFlow – lightweight layered configuration management for Python

Published: (April 5, 2026 at 10:07 AM EDT)
1 min read
Source: Dev.to

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)     # 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.

0 views
Back to Blog

Related posts

Read more »

setup config.py

Every project starts the same way… You hardcode a few values, sprinkle some os.getenv calls, and tell yourself “I’ll clean this up later.” Later never comes. In...