
FWIW, I stumbled across an implementation of contracts for Python that works more or less in the manner you describe:
With the new surge of interest in metaclasses, I expect many competing DBC implementations to come into existence. An early commitment to one of them may preclude better ideas from getting a chance. Another thought is that all of the machinery is in place to enable a library of cooperating metaclass tools as envisioned by Forman and Danforth's metaclass book. Any metaclass work included in the distribution ought to make allowances for being included side-by-side with threadsafety metaclasses, logging metaclasses, auto property creators, auto delegators, and such. In summary, I prefer that DBC not be PEPed. Instead, let things grow on SF, the cookbook, the vaults, and private offerings. 'nuff said, Raymond Hettinger