def METHOD_NAME(df: pd.DataFrame, columns_sets: Sequence[Union[List[_Hashable], List[str]]]):
    """Check if the dataframe has at least all columns sets.
    Examples
    --------
    >>> df = pd.DataFrame()
    >>> df.columns = ["col1", "col2"]
    >>> _assert_has_columns(df, [["other_col1", "other_col2"], ["col1", "col2"]])
    >>> # This raises no error, as df contains all columns of the second set
    """
    columns_sets_as_set = [set(col_set) for col_set in columns_sets]
    columns = df.columns
    result = False
    for col_set in columns_sets_as_set:
        result = result or all(v in columns for v in col_set)
    if result is False:
        if len(columns_sets) == 1:
            helper_str = f"columns: {columns_sets[0]}"
        else:
            helper_str = f"one of the following sets of columns: {columns_sets}"
        raise ValidationError(
            "The dataframe is expected to have {}. Instead it has the following columns: {}".format(
                helper_str, list(df.columns)
            )
        )