argparser factory for miniconfig
Project description
argparse settings with miniconfig
code
from miniconfig_argparse import get_configurator
config = get_configurator()
config.include("yourmodule")
config.include("yourmodule.extra")
args = config.make_args()
# 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__":
from miniconfig_argparse import get_configurator
config = get_configurator()
config.include(includeme)
args = config.make_args()
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.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57115f4e9429cefec2727d487ff0e6ab6aa7066bbf0355dbacfca5a1f9e3f030 |
|
MD5 | d6acdeabfeb09565da4da8fbec799d80 |
|
BLAKE2b-256 | 441c027bccd4011464bb49da3532a833a25ef8a9186dd7e9af6f98503577d89b |