'Return a weak-reference-like instance for a bound method
target -- the instance-method target for the weak
reference, must have im_self and im_func attributes
and be reconstructable via:
target.im_func.__get__( target.im_self )
which is true of built-in instance methods.
onDelete -- optional callback which will be called
when this weak reference ceases to be valid
(i.e. either the object or the function is garbage
collected).  Should take a single argument,
which will be passed a pointer to this object.'

def __init__(self, target, onDelete=None):

    assert (getattr(target.im_self, target.__name__) == target), ("method    %s    isn't    available    as    the    attribute    %s    of    %s" % (target, target.__name__, target.im_self))
    super(BoundNonDescriptorMethodWeakref, self).__init__(target, onDelete)
