def __init__(self, c, *args, **kwargs): #{{{ if not iscallable(c): raise TypeError("%s object is not callable" %c.__class__.__name__) mc = self._make_callobj self._args = tuple(mc(a) for a in args) self._kwargs = dict((k, mc(v)) for k, v in kwargs.iteritems()) self._callable = c
def fset(self, val): #{{{ vars = self._vars if vars['sigfunc'] is not None: raise ValueError("Can only set 'signalfunc' property once") if not iscallable(val) or getattr(val, 'signal', None) is not self: raise TypeError('Attempt to set invalid signalfunc') vars['sigfunc'] = cref(val)