import csv


def _read_csv(
    filepath: str, delimiter: str = ",", quotechar: str = '"', escapechar: str = ""
) -> dict:
    """Process a given csv into a python dictionary

    Arguments:
        filepath: string pointing to csv file
        delimiter: string that denotes what char seperates values in csv, default is ','
        quotechar: string that denotes what char surrounds fields containing delimeter char, default is '"'
        escapechar: string that denotes what char escaptes the delimeter char, default is no escape char.
    Returns:
        csv_dict: dictionary whose keys are column numbers and values are column lists
    """
    csv_dict = {}
    with open(filepath, "r") as csv_file:
        csv_reader = csv.reader(
            csv_file, delimiter=delimiter, quotechar=quotechar, escapechar=escapechar
        )
        header = next(csv_reader)
        num_cols = len(header)
        for num in range(num_cols):
            csv_dict[num] = [header[num]]
        for row in csv_reader:
            for num in range(num_cols):
                csv_dict[num].append(row[num])
    return csv_dict