It predates the MyPy syntax and, in my opinion, is a gazillion times prettier and my "pythonic". I'm not bitter ;)
It's "actively maintained" but I haven't needed to do anything in ages - it just works :)
PySchemes seems to have very similar syntax, but obiwan is also able to validate signatures in function annotations and is particularly good at validating JSON and msgpack APIs (the python code to validate an API is self-describing and makes excellent API documentation for other parties).
It looks similar to voluptuous. Browsing READMEs, the other three examples expose their own library level representations for primitive types (e.g. Field.int() or {"type": "int"} instead of the primitive Python type int).
- https://github.com/alecthomas/voluptuous
- https://github.com/schematics/schematics
- https://github.com/pyeve/cerberus
- https://github.com/fuhrysteve/marshmallow-jsonschema