awesome-python icon indicating copy to clipboard operation
awesome-python copied to clipboard

Add Onacol

Open JNevrly opened this issue 4 years ago • 0 comments

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.

JNevrly avatar Jan 03 '22 09:01 JNevrly