def __call__ ( self , obj , * arg , * * kw ) : bound_method = self . _manager . __get__ ( obj , obj . __class__ ) return bound_method ( * arg , * * kw )
python boundmethod to unbound
Call the unbound method . We essentially build a bound method and call that . This ensures that the code for managing observers is invoked in the same was as it would be for a bound method .
def __call__(self, obj, *arg, **kw):
        """
        Call the unbound method.
        
        We essentially build a bound method and call that. This ensures that
        the code for managing observers is invoked in the same was as it would
        be for a bound method.
        """
        bound_method = self._manager.__get__(obj, obj.__class__)
        return bound_method(*arg, **kw)