def is_disabled(context, name):
    """Whether a specific pattern is disabled.

    The context object might define an inclusion list (includes) or an exclusion list (excludes)
    A pattern is considered disabled if it's found in the exclusion list or
    it's not found in the inclusion list and the inclusion list is not empty or not defined.

    :param context:
    :param name:
    :return:
    """
    if not context:
        return False

    excludes = context.get('excludes')
    if excludes and name in excludes:
        return True

    includes = context.get('includes')
    return includes and name not in includes