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
File details
Details for the file miniconfig-argparse-0.0.4.tar.gz
.
File metadata
- Download URL: miniconfig-argparse-0.0.4.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
50b4f8e11f43dc642c7741493f3279d070cafac1716f5c584981a3cf4ba6ea3d
|
|
MD5 |
d93da70ed8dd14b222ed60e2d11e5a5a
|
|
BLAKE2b-256 |
3d0e6381066170c2e89c79620973c089c81113fcf20e91881c4d893ec69cacae
|