def METHOD_NAME(*input_files: typing.Union[str, bytes, os.PathLike], fieldnames=None):
    for file in list_corpus_files(*input_files):
        with read_open(file) as f:
            if is_tsv(file) or is_csv(file):
                delimiter = ',' if is_csv(file) else '\t'
                reader = csv.DictReader(f, delimiter=delimiter, fieldnames=fieldnames)
                for row in reader:
                    passage = Passage.from_dict(row)
                    yield passage
            else:
                for line in f:
                    jobj = json.loads(line)
                    passage = Passage.from_dict(jobj)