I'm just splitting hairs now but how about

    is_unary = (spec and spec.varargs is None and not may_have_kwargs and len(spec.args) == 1)

If you thought this was a good idea you could also change `may_have_kwargs` above in the same way.