Classify the argument lists as either all, no_p, or where_has, so we can get the correct method signatures. This is picked up in the generated docs, and it will give us run time checks, so users can't supply the wrong kwargs.
>>> def f(expected=None):
... pass
...
>>> f(unexpected='!')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: f() got an unexpected keyword argument 'unexpected'
Classify the argument lists as either
all
,no_p
, orwhere_has
, so we can get the correct method signatures. This is picked up in the generated docs, and it will give us run time checks, so users can't supply the wrong kwargs.