27 lines
838 B
Python
27 lines
838 B
Python
"""Module for ingesting text files containing quotes."""
|
|
|
|
from typing import List
|
|
from .IngestorInterface import IngestorInterface
|
|
from .QuoteModel import QuoteModel
|
|
|
|
|
|
class TextIngestor(IngestorInterface):
|
|
"""Subcalss for ingesting text files."""
|
|
|
|
allowed_extensions = ["txt"]
|
|
|
|
@classmethod
|
|
def parse(cls, path: str) -> List[QuoteModel]:
|
|
"""Parse the text file to extract quotes."""
|
|
if not cls.can_ingest(path):
|
|
raise Exception("Invalid ingest path")
|
|
quotes = []
|
|
with open(path, "r") as file:
|
|
for line in file.readlines():
|
|
line = line.strip()
|
|
if line:
|
|
parts = line.split(" - ", 1)
|
|
if len(parts) == 2:
|
|
quotes.append(QuoteModel(parts[0], parts[1]))
|
|
return quotes
|