import io import csv from typing import List, TypeVar T = TypeVar("T") class CSVReader: rows: List[T] = [] def __init__(self, items: List[T] = None): self.rows.extend(items or []) def add_row(self, row): self.rows.append(row) def read(self, delimiter: str = ","): csv_doc = csv.reader(self.rows, delimiter=delimiter) return list(csv_doc) @staticmethod def read_from_file(file: str, delimiter: str = ","): with io.StringIO(file) as f: csv_doc = csv.reader(f, delimiter=delimiter) f.close() return list(csv_doc)