Created by: JNevrly
What is this Python project?
Onacol is a low-opinionated configuration management library with following features:
- YAML (=structured and hierarchical) configuration file support
- Environment variables support (explicit and implicit)
- CLI arguments support
- Configuration merging/overwriting/layering
- Parameter validation (via Cerberus)
- Configuration schema, documentation and default values are defined in single YAML -> No code schema.
- Minimal dependencies
What's the difference between this Python project and similar ones?
Comparing with all the configuration management libraries & frameworks I could find on GitHub, based on the features I consider important:
Framework | YAML | ENV vars | CLI args | Merging | Validation | No code schema |
---|---|---|---|---|---|---|
Hydra |
|
|
|
|
|
|
Pydantic |
|
|
|
|
||
Dynaconf |
|
|
|
|
|
|
python-dotenv |
|
|
|
|
|
|
Gin Config |
|
|
||||
Python Decouple |
|
|
|
|
|
|
OmegaConf |
|
|
|
|
|
|
Confuse |
|
|
|
|
|
|
Everett |
|
|
|
|
|
|
parse_it |
|
|
|
|
|
|
Grift |
|
|
|
|
|
|
profig |
|
|
|
|
|
|
tweak |
|
|
|
|
|
|
Bison |
|
|
|
|
|
|
Config-Man |
|
|
|
|
|
|
figga |
|
|
|
|
|
|
Onacol |
|
|
|
|
|
|
--
Anyone who agrees with this pull request could submit an Approve review to it.