def METHOD_NAME(cls, columns):
    """
    Split columns into chunks that should be read by workers.
    Parameters
    ----------
    columns : list
        List of columns that should be read from file.
    Returns
    -------
    col_partitions : list
        List of lists with columns for reading by workers.
    column_widths : list
        List with lengths of `col_partitions` subarrays
        (number of columns that should be read by workers).
    """
    columns_length = len(columns)
    if columns_length == 0:
        return [], []
    num_partitions = NPartitions.get()
    column_splits = (
        columns_length // num_partitions
        if columns_length % num_partitions == 0
        else columns_length // num_partitions + 1
    )
    col_partitions = [
        columns[i : i + column_splits]
        for i in range(0, columns_length, column_splits)
    ]
    column_widths = [len(c) for c in col_partitions]
    return col_partitions, column_widths