This function will be deprecated.

    Removes one wrap around the method (given as a parameter) and
    returns the wrap. If the method is not wrapped, returns None.

def peel_around(method):
    """
    This function will be deprecated.

    Removes one wrap around the method (given as a parameter) and
    returns the wrap. If the method is not wrapped, returns None.
    """
    _permission_to_touch_wraps.acquire() # released in finally part
    try:
        if hasattr(method,'__aspects_enabled'): # new-style aspect, easy!
            method.__aspects_rmf(method.__name__,method.__aspects_orig)
            return method.__aspects_adv
        
        methods_name = method.__name__
        methods_class = method.im_class

        wc = wrap_count(method)-1

        if wc==-1: return None

        wrapped = getattr(methods_class, '__wrapped' + str(wc) + methods_name)
        setattr(methods_class, methods_name, wrapped)

        removed_adv = getattr(methods_class, '__wrap'+str(wc)+methods_name)
        del methods_class.__dict__['__wrapped'+str(wc)+methods_name]
        del methods_class.__dict__['__wrap'+str(wc)+methods_name]

        return removed_adv
    finally: _permission_to_touch_wraps.release()