Skip to content

license python versions pypi version tests status code coverage last commit


Overview

Simple Hydra inspired configuration library, supporting custom backends and variable substitution. Configs are defined as nested groups of mutually exclusive options that can be selectively activated.

The Horai, as they are called, to each of them, according as her name indicates, was given the ordering and adornment of life, so as to serve to the greatest advantage of mankind; for there is nothing which is better to build a life of felicity than obedience to law (Eunomia) and justice (Dike) and peace (Eirene). — Diodorus Siculus

Getting Started

  1. Install with: pip install eunomia

  2. Read these docs!

Citing Eunomia

Please use the following citation if you use Eunomia in your research:

bibtex @Misc{Michlo2021Eunomia, author = {Nathan Juraj Michlo}, title = {Eunomia - A sane but flexible configuration framework}, howpublished = {Github}, year = {2021}, url = {https://github.com/nmichlo/eunomia} }

Why Eunomia

Hydra Config Limitations:

  • ❌   Does not support simple python expressions
  • ❌   Cannot reference merged config values in defaults lists
  • ❌   Does not support custom backends
    • ❌   Does not support nested pythonic config definitions
    • ❌   Does not support combining groups/options loaded from different backends
  • ❌   Uses custom yaml comment parsing to obtain package
  • ❌   Release version 1.1 (with recursive defaults) was taking too long.
  • ❌   Huge + Depends on OmegaConf
    • Hydra + OmegaConf:
    • Eunomia:

Last update: February 14, 2021