Source code for contracts.library.miscellaneous_aliases

import collections



[docs]def ist(C): def f(x): f.__name__ = 'isinstance_of_%s' % C.__name__ if not isinstance(x, C): raise ValueError('Value is not an instance of %s.' % C.__name__) return f
[docs]def m_new_contract(name, f): from contracts.library.extensions import CheckCallable from contracts.library.extensions import Extension Extension.registrar[name] = CheckCallable(f)
m_new_contract('Container', ist(collections.Container)) # todo: Iterable(x) m_new_contract('Iterable', ist(collections.Iterable)) m_new_contract('Hashable', ist(collections.Hashable)) m_new_contract('Iterator', ist(collections.Iterator)) m_new_contract('Sized', ist(collections.Sized)) m_new_contract('Callable', ist(collections.Callable)) m_new_contract('Sequence', ist(collections.Sequence)) m_new_contract('Set', ist(collections.Set)) m_new_contract('MutableSequence', ist(collections.MutableSequence)) m_new_contract('MutableSet', ist(collections.MutableSet)) m_new_contract('Mapping', ist(collections.Mapping)) m_new_contract('MutableMapping', ist(collections.MutableMapping)) #new_contract('MappingView', ist(collections.MappingView)) #new_contract('ItemsView', ist(collections.ItemsView)) #new_contract('ValuesView', ist(collections.ValuesView)) # Not a lambda to have better messages
[docs]def is_None(x): return x is None
m_new_contract('None', is_None) m_new_contract('NoneType', is_None)