Skip to main content

Argparse enhanced with a config file to overwrite code-based defaults

Project description

argconfig

argparse + yaml config system

This takes the same format as the argparse.ArgumentParser class; however it adds the feature of setting a default yaml file for base configuration to override the default set in the code. Usage has the following overwrite priority:

command line > config file > default set in code

This enables a flexible configuration based, commandline interface options at scale.

Requirements

  • Python 3.7+
  • pyyaml
  • argparse

Example

Config File

Use the example.yaml config file in the same directory as your example python code:

$ cat example.yaml
foo : test1
bar : 2.0

Example Code

The example python code setsup the variables foo and bar to equal 'testing' and 2.0 respectively. (Note the syntax is almost identical as argparse.ArgumentParser.)

import argconfig

parser = argconfig.ArgumentParser(description='argconfig example',config='./example.yaml')
parser.add_argument('-f','--foo', type=str, default='testing',
                    help='foo (default=testing, config=test)')
parser.add_argument('--bar',
                    help='bar (default=None, config = 2.0)')
args = parser.parse_args()

print('foo:',args.foo)
print('bar:',args.bar)

Example Command Line Usage

Run time of the example with foo and bar set by command line:

python example.py --foo test --bar 3.0

returns the following two print statements:

foo: test
bar: 3.0

While the values set in example.yaml is used when the values are not overriden by the command line:

python example.py

returns the following two print statements:

foo: test1
bar: 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

argconfig-0.0.1.tar.gz (2.9 kB view hashes)

Uploaded Source

Built Distribution

argconfig-0.0.1-py3-none-any.whl (4.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page