Spaces:
Runtime error
Runtime error
from abc import ABC, abstractmethod | |
from PyPDF2 import PdfReader | |
class FileHandler(ABC): | |
"""Abstract base class for file handlers.""" | |
def read_file(self, file): | |
"""Read the file and extract the text. | |
Parameters: | |
file (UploadedFile): The file to read. | |
Returns: | |
str: The extracted text. | |
""" | |
pass | |
class PDFHandler(FileHandler): | |
def read_file(self, file): | |
try: | |
pdf_reader = PdfReader(file) | |
text = "" | |
for page in pdf_reader.pages: | |
page_text = page.extract_text() | |
if page_text: | |
text += page_text | |
return text | |
except Exception as e: | |
print(f"Error reading file: {e}") | |
return "" # return an empty string if an error occurs | |
class FileHandlerFactory: | |
def get_file_handler(file_type): | |
if file_type == "application/pdf": | |
return PDFHandler() | |
else: | |
raise ValueError("Invalid file type") |