Skip to content

Maps yaml values, environment variables, and command line arguments to python function parameters.

License

Notifications You must be signed in to change notification settings

innovate-invent/configutator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

configutator

Maps yaml nodes and command line arguments to python function parameters.

To install: pip install configutator Or:

git clone git@github.com:innovate-invent/configutator.git
cd configutator
python3 setup.py install

To use:

  1. Create a main function with all the parameters you need, annotated with any defaults.
  2. Use the @ConfigMap and @ArgMap decorators to modify the default mappings if needed.
  3. In the if __name__ == "__main__": block at the bottom of the file call the loadConfig() function.

Here is an example of the most basic use:

from configutator import loadConfig
from sys import argv

def foo(param1, param2, param3=None):
  pass

if __name__ == "__main__":
  for argmap in loadConfig(argv, (foo,)):
    foo(**argmap[foo])

One thing you need to keep in mind when working with configutator is that the config, command line arguments, and function parameters are all independant. The parameters given to @ConfigMap and @ArgMap are what connects them all. You should never have to change a function signature to modify the command line functionality.

About

Maps yaml values, environment variables, and command line arguments to python function parameters.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages