System for describing and enforcing a Python object schema
Project description
An object schema describes every class in a collection of objects – in particular, it specifies the type of every instance attribute of every class. Grouch includes a type language for specifying attribute types, a tool to parse specially-formatted class docstrings and output a complete object schema, and another tool for walking a persistent object graph and ensuring that every scrap of data in it conforms to the object schema extracted from your class docstrings. The API for defining, querying, and enforcing types is fairly complete and well-documented, so you can use Grouch’s type system in other ways as well.