Skip to content

Latest commit

 

History

History
executable file
·
32 lines (22 loc) · 1.12 KB

README.rst

File metadata and controls

executable file
·
32 lines (22 loc) · 1.12 KB

configutator

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

To install: pip install configutator Or:

git clone [email protected]: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.