def METHOD_NAME(self, data, **kwargs):
    method = data["method"]
    method_callable = getattr(
        BeliefsDataFrame, method, None
    )  # what if the object which is applied to is not a BeliefsDataFrame...
    if not callable(method_callable):
        raise ValidationError(
            f"method {method} is not a valid BeliefsDataFrame method."
        )
    method_signature = signature(method_callable)
    try:
        args = data.get("args", []).copy()
        _kwargs = data.get("kwargs", {}).copy()
        args.insert(0, BeliefsDataFrame)
        method_signature.bind(*args, **_kwargs)
    except TypeError:
        raise ValidationError(
            f"Bad arguments or keyword arguments for method {method}"
        )