awesome-python
awesome-python copied to clipboard
Add Onacol
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.