--- a +++ b/tests/lib/file_utils.py @@ -0,0 +1,20 @@ +import csv +import gzip + +from pyarrow.feather import read_table + +from ehrql.file_formats import get_file_extension + + +def read_file_as_dicts(filename): + extension = get_file_extension(filename) + if extension == ".csv": + with open(filename, newline="") as f: + return list(csv.DictReader(f)) + elif extension == ".csv.gz": + with gzip.open(filename, "rt", newline="") as f: + return list(csv.DictReader(f)) + elif extension == ".arrow": + return read_table(str(filename)).to_pylist() + else: + assert False, f"Unsupported extension: {filename}"