argparser factory for miniconfig
Project description
argparse settings with miniconfig
code
import sys
from miniconfig_argparse import get_configurator
config = get_configurator()
config.include("yourmodule")
config.include("yourmodule.extra")
args = config.make_args(sys.argv[1:])
# using args
in yourmodule, using config like a below.
def includeme(config):
parser = config.parser
parser.add_argument(
'-v', '--verbose', action='count', default=0,
help="(default option: increment logging level(default is WARNING))"
)
parser.add_argument(
'-q', '--quiet', action='count', default=0,
help="(default option: decrement logging level(default is WARNING))"
)
def setup_closure(args):
logging_level = logging.WARN + 10 * args.quiet - 10 * args.verbose
logging.basicConfig(level=logging_level)
return args
parser.add_callback(setup_closure)
default directives
make_parser
replace_parser
call_function_as_command
make_parser(fn) + call_function_as_command
Using make_parser() and call_function_as_command() combinations are useful, sometimes.
make_parser(fn) – creating parser from a function definition.
call_function_as_command – call function using parsed argument object.
Such as below.
def greeting(message, is_surprised=False, name="foo"):
""" greeting message
:param message: message of greeting
:param is_surprised: surprised or not (default=False)
:param name: name of actor
"""
suffix = "!" if is_surprised else ""
print("{name}: {message}{suffix}".format(name=name, message=message, suffix=suffix))
def includeme(config):
parser = config.make_parser(greeting)
config.replace_parser(parser)
if __name__ == "__main__":
import sys
from miniconfig_argparse import get_configurator
config = get_configurator()
config.include(includeme)
args = config.make_args(sys.argv[1:])
config.call_function_as_command(greeting, args)
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
Close
Hashes for miniconfig-argparse-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40791319924c82251f283618bc107a708e8af992e856a136305e5cb3e802c396 |
|
MD5 | ba17c537c0699723abffeba5b91ea5b6 |
|
BLAKE2b-256 | 111a8a83253a47b6f6c68eab76ba33b22ca9cc250c32f5c1babc6525ce7edb01 |