a function decorator for enforcing function signatures
Install build dependencies.
pip install -r requirements
Run nox
to build, install, and run checksignature
tests.
Decorate any funciton with @checksignature
.
@checksignature
def function(a: str, b: int, c, *args: int, **kwargs: int)::
return a, b, c, args, kwargs
Upon invocation of function
, the signature check is evaluated.
function('one', 2, 3.0, 1, 2, 3, **{'four': 4}) #=> functions as usual--no problem.
function('one', 2, 3.0, 1, 2, 3, **{'four': 4.0}) #=> raises a TypeError
function('one', 2, 'x', 1, 2, 3, **{'four': 4}) #=> raises a TypeError