Spaces:
Paused
Paused
File size: 1,050 Bytes
0017280 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | """File reader registry. Maps extensions to reader functions."""
from src.readers.pdf import read_pdf
from src.readers.text import read_text
from src.readers.docx import read_docx
from src.readers.excel import read_excel
from src.readers.csv_tab import read_csv_tab
from src.readers.stata import read_stata
from src.readers.spss import read_spss
from src.readers.rdata import read_rdata
READERS = {
".pdf": read_pdf,
".docx": read_docx,
".xlsx": read_excel,
".xls": read_excel,
".csv": read_csv_tab,
".tab": read_csv_tab,
".tsv": read_csv_tab,
".dta": read_stata,
".sav": read_spss,
".rds": read_rdata,
".rda": read_rdata,
".txt": read_text,
".md": read_text,
".json": read_text,
".do": read_text,
}
def read_file(file_path: str) -> list[dict]:
from pathlib import Path
ext = Path(file_path).suffix.lower()
reader = READERS.get(ext)
if reader is None:
print(f" Unsupported file type: {ext}, skipping {file_path}")
return []
return reader(file_path)
|