confu.cli
functions that allow you to generate CLI parameters from a confu schema for argparse or click
Functions
apply_arg
def apply_arg(original_key, args, config)
Function for applying arguments to a config. Applies to nested configs as well.
Arguments
- original_key (
str
): the name of the argument in the argparse Namespace - args (
argparse.Namespace
): the entire Namespace, ie the result of the parser - config (
Config
): the config object
apply_argparse
def apply_argparse(args, config)
Takes the output of a parser and applies it to a Config object.
Arguments
- args (
argparse.Namespace
): the result of parser.parse_args() - config (
Config
): the config object
Returns
- config (
Config
): now updated with args
argparse_options
def argparse_options(parser, schema, defaults=None, attributes=None, default_from_schema=True)
Add cli options to an argparse ArgumentParser instance
Arguments
- parser (
argparse.ArgumentParser
) - schema (
Schema
)
Keyword Arguments
- defaults (
dict
): if specified will override defaults from here - attributes (
list<str>
): can hold a list of attribute names. if specified only matching attributes will be aded - default_from_schema (
bool
): determines if defaults for argparser should come from the schema
destination_name
def destination_name(path, delimiter=__)
Returns a cli option destination name from attribute path
Arguments
- path (
list
): attribute path - delimiter (
str
): delimiter for nested attributes
Returns
cli destination name (str
)
option_name
def option_name(path, delimiter=--)
Returns a cli option name from attribute path
Arguments
- path (
list
): attribute path - delimiter (
str
): delimiter for nested attributes
Returns
cli option name (str
)
Classes
click_options
click_options(builtins.object)
Add cli options to a click decorated function
Use like a decorator
Arguments
- schema (
Schema
)
Keyword Arguments
- defaults (
dict
): if specified will override defaults from here - attributes (
list<str>
): can hold a list of attribute names. if specified only matching attributes will be aded
Methods
__call__
def __call__(self, fn)
Call self as a function.
__init__
def __init__(self, schema, defaults=None, attributes=None)
Initialize self. See help(type(self)) for accurate signature.