Skip to main content

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

miniconfig-argparse-0.0.4.tar.gz (4.5 kB view details)

Uploaded Source

File details

Details for the file miniconfig-argparse-0.0.4.tar.gz.

File metadata

File hashes

Hashes for miniconfig-argparse-0.0.4.tar.gz
Algorithm Hash digest
SHA256 50b4f8e11f43dc642c7741493f3279d070cafac1716f5c584981a3cf4ba6ea3d
MD5 d93da70ed8dd14b222ed60e2d11e5a5a
BLAKE2b-256 3d0e6381066170c2e89c79620973c089c81113fcf20e91881c4d893ec69cacae

See more details on using hashes here.

Supported by

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