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.