Robust constraint validation for attributes, functions and code blocks using abstract types
Constraints provides a rich set of validation tools which can be used almost anywhere. Using Constraint class instances as descriptors, you can perform validation at the class attribute level. Constraint objects can be used with Precondition, Postcondition and Invariant objects to validate a block of code (as context managers) or a function (as decorators).
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.