Skip to content

csv

django_spire.contrib.sync.file.reader.csv

CsvReader

Bases: Reader

Source code in django_spire/contrib/sync/file/reader/csv.py
def __init__(
    self,
    delimiter: str = ',',
    encoding: str = 'utf-8',
    field_map: dict[str, str] | None = None,
    type_map: dict[str, type] | None = None,
) -> None:
    self._delimiter = delimiter
    self._encoding = encoding
    self._field_map = field_map or {}
    self._type_map = type_map or {}

read

Source code in django_spire/contrib/sync/file/reader/csv.py
def read(self, file_path: str | Path) -> list[dict[str, Any]]:
    file_path = Path(file_path)

    with open(file_path, encoding=self._encoding, newline='') as handle:
        reader = csv.DictReader(handle, delimiter=self._delimiter)

        return [
            self._cast_record(self._map_record(row))
            for row in reader
        ]