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
Built Distribution
Close
Hashes for miniconfig-argparse-0.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54573b2d7d406fbc6ddbff903e12387e97e5113924b4e6c92f248708a5a139ab |
|
MD5 | 44636cfb07fabe5c7358220c746adc56 |
|
BLAKE2b-256 | 9f5ed7e04e947992748ae91fd1e447b1b3dcdb1b9c5bad58806656db57a19af2 |
Close
Hashes for miniconfig_argparse-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6cd9f4189d645c32ca6904bba18ddce41e418c7d51b6f26d472c2969bcc47067 |
|
MD5 | a95e8cc671d868f811ae95127e68fd8e |
|
BLAKE2b-256 | 73420140b5304a380cc6a69a29742e03825b33fc451fe44640ac2a5bc3dc7b3c |