25 lines
734 B
Python
25 lines
734 B
Python
"""Module for ingesting CSV files containing quotes."""
|
|
|
|
from typing import List
|
|
from .IngestorInterface import IngestorInterface
|
|
from .QuoteModel import QuoteModel
|
|
|
|
import pandas as pd
|
|
|
|
|
|
class CSVIngestor(IngestorInterface):
|
|
"""Subclass for ingesting CSV files."""
|
|
|
|
allowed_extensions = ["csv"]
|
|
|
|
@classmethod
|
|
def parse(cls, path: str) -> List[QuoteModel]:
|
|
"""Parse the CSV file to extract quotes."""
|
|
if not cls.can_ingest(path):
|
|
raise Exception("Invalid ingest path")
|
|
quotes = []
|
|
df = pd.read_csv(path, header=0, sep=",", names=["body", "author"])
|
|
for _, row in df.iterrows():
|
|
quotes.append(QuoteModel(row["body"], row["author"]))
|
|
return quotes
|