Coma
Configurable command management for humans.
Introduction
Commands (also known as sub-commands) are the commit
and pull
part of
git commit
and git pull
(whereas git
is the program). Commands can
be seen as command-line meta-arguments: They drastically affect not only the
behavior of the program, but also what additional command-line line arguments
and flags are accepted.
coma
goes one step further. With it, commands determine which configuration
files are loaded, enabling command-specific configs that don’t affect the whole
program.
Key Features
coma
makes it easy to build configurable command-based programs in Python by:
Installation
pip install coma
Getting Started
Excited? Jump straight into the short introductory tutorial.
Why Coma?
Why choose coma
over another omegaconf
-based solution, like
hydra? hydra
, specifically, has the following
limitations (all of which are features that coma
supports!):
No commands. Related functionality must be implemented as separate programs.
No command-line arguments or flags. All program data must be provided through configs.
No parallel/independent configs. All configs must be hierarchical.
If these limitations aren’t deal-breakers for you, then, by all means, use
hydra
(or any other framework). hydra
, in particular, certainly has a
wonderfully rich feature set (including config groups,
which inspired its name).