def _resolve_indirect_inner(maybe_idict):
    """Resolve the contents an indirect dictionary (containing promises) to produce
    a dictionary actual values, including merging multiple sources into a
    single input.
    """

    if isinstance(maybe_idict, IndirectDict):
        result = {}
        for key, value in list(maybe_idict.items()):
            if isinstance(value, (MergeInputs, DefaultWithSource)):
                result[key] = value.resolve()
            else:
                result[key] = value[1].get(value[0])
        return result
    return maybe_idict
Resolve the contents an indirect dictionary (containing promises) to produce
    a dictionary actual values, including merging multiple sources into a
    single input.