module documentation

Undocumented

Class Config Invoke's primary configuration handling class.
Class DataProxy Helper class implementing nested dict+attr access for `.Config`.
Exception AmbiguousMergeError Undocumented
Function copy_dict Return a fresh copy of ``source`` with as little shared state as possible.
Function excise Remove key pointed at by ``keypath`` from nested dict ``dict_``, if exists.
Function load_source Undocumented
Function merge_dicts Recursively merge dict ``updates`` into dict ``base`` (mutating ``base``.)
Function obliterate Remove all (nested) keys mentioned in ``deletions``, from ``base``.
Function _format_mismatch Undocumented
Function _merge_error Undocumented
def copy_dict(source): (source)

Return a fresh copy of ``source`` with as little shared state as possible. Uses `merge_dicts` under the hood, with an empty ``base`` dict; see its documentation for details on behavior. .. versionadded:: 1.0

def excise(dict_, keypath): (source)

Remove key pointed at by ``keypath`` from nested dict ``dict_``, if exists. .. versionadded:: 1.0

def load_source(name, path): (source)

Undocumented

def merge_dicts(base, updates): (source)

Recursively merge dict ``updates`` into dict ``base`` (mutating ``base``.) * Values which are themselves dicts will be recursed into. * Values which are a dict in one input and *not* a dict in the other input (e.g. if our inputs were ``{'foo': 5}`` and ``{'foo': {'bar': 5}}``) are irreconciliable and will generate an exception. * Non-dict leaf values are run through `copy.copy` to avoid state bleed. .. note:: This is effectively a lightweight `copy.deepcopy` which offers protection from mismatched types (dict vs non-dict) and avoids some core deepcopy problems (such as how it explodes on certain object types). :returns: The value of ``base``, which is mostly useful for wrapper functions like `copy_dict`. .. versionadded:: 1.0

def obliterate(base, deletions): (source)

Remove all (nested) keys mentioned in ``deletions``, from ``base``. .. versionadded:: 1.0

def _format_mismatch(x): (source)

Undocumented

def _merge_error(orig, new_): (source)

Undocumented