I’d like to give a proud-father-ly salute to Maxime Bourget’s typecheck frontend. Combining typecheck with the TPG parser generator, the frontend allows you to specify a function’s types using Haskell-like syntax in the callable’s docstring. To wit:

>>> from ize.typechecker import *
>>> @tize
... def f(x):
...     ':: int -> int'
...     return x+10
...
>>>

…which defines the function f as taking an int and returning an int.

All praise and suggestions go to Maxime Bourget (maxime dot bourget at gmail period com).