I'm defining a function in Python. It has two keyword arguments. Both can be given. If only one is given, I can find a sensible value for the other. However, it does not make sense to fill in neither of the arguments.
My implementation looks like this:
def my_fun(foo=None,bar=None):
if foo is None:
if bar is None:
raise Error("My error")
... etc
What is the most standard error to throw? Is a ValueError the right choice?