This call un-links an association that was made using bind_bottom_up.
    Have a look at help(bind_bottom_up)

def split_bottom_up(lower, upper, __fval=None, **fval):
    """This call un-links an association that was made using bind_bottom_up.
    Have a look at help(bind_bottom_up)
    """
    if __fval is not None:
        fval.update(__fval)

    def do_filter(params, cls):
        params_is_invalid = any(
            k not in params or params[k] != v for k, v in six.iteritems(fval)
        )
        return cls != upper or params_is_invalid
    lower.payload_guess = [x for x in lower.payload_guess if do_filter(*x)]