import inspect


def get_clean_parameter_dict(signature: inspect.Signature) -> dict:
    """Remove self, kwarg and positional params from signature.

    Parameters
    ----------
    signature : inspect.Signature
        signature of a method

    Returns
    -------
    dict
        clean parameter dictionary
    """
    return {
        p.name: p.default if p.default != inspect.Parameter.empty else None
        for p in signature.parameters.values()
        if p.name != "self" and p.kind != p.VAR_KEYWORD and p.kind != p.VAR_POSITIONAL
    }