zope.interface
This package is intended to be independently reusable in any Python project. It is maintained by the Zope Toolkit project.
This package provides an implementation of "object interfaces" for Python. Interfaces are a mechanism for labeling objects as conforming to a given API or contract. So, this package can be considered as implementation of the Design By Contract methodology support in Python.
For detailed documentation, please see https://zopeinterface.readthedocs.io/en/latest/