import inspect


def bound_args(func, args, kwargs):
    """Return a dictionary mapping parameter name to value.

    Parameters
    ----------
    func : Callable
        this must be inspectable; mocks will require a spec
    args : List
        args list
    kwargs : Dict
        kwargs Dict

    Returns
    -------
    Dict[str, Any] :
        mapping of string name of function parameter to the value it would
        be bound to
    """
    sig = inspect.Signature.from_callable(func)
    bound = sig.bind(*args, **kwargs)
    return bound.arguments