Source code for mario_addons.plugins.read

"""Functions for read commands."""

import csv
import typing as t


[docs]def read_csv_dicts(file, header: bool, **kwargs) -> t.Iterable[t.Mapping[t.Any, str]]: """Read csv rows into an iterable of dicts.""" rows = list(file) first_row = next(csv.reader(rows)) if header: fieldnames = first_row reader = csv.DictReader(rows, fieldnames=fieldnames, **kwargs) return list(reader)[1:] fieldnames = list(range(len(first_row))) # type: ignore return csv.DictReader(rows, fieldnames=fieldnames, **kwargs)
[docs]def read_csv_tuples(file, **kwargs) -> t.Iterable[t.Tuple]: """Read csv rows into an iterable of tuples.""" return (tuple(row) for row in csv.reader(file, **kwargs))