When it comes to high-level languages such as python, most likely there are a variety of ways you will want to use your code. For example:

Similarly, there are several different ways you might want to provide arguments to your code when you execute it:

Each of these different run environments and config systems may require a slightly different interface with your code or at least expect certain behavior - but since ultimately none of these settings necessarily depend on what your code actually does the developer should not have to worry about any of this. Once written, the script should just as easily extract arguments from a series of config files as from the command line. This is a coding abstraction, and achieving this abstraction is the primary goal of omni-fig.

The best way to use this package is to create projects containing python source files and YAML (info and config) files (an example of which is discussed below). Each project uses ComponentModifier, and Script to register any

For lots of detailed examples in how the config system works, see the unit tests on GitHub and the documentation, which also includes some examples.

felixludos/omni-fig