Spaces:
Build error
Build error
| import os | |
| # Mock loader classes for demonstration purposes | |
| class PyPDFLoader: | |
| def __init__(self, file_path): | |
| self.file_path = file_path | |
| print(f'PDF loader initialized with {file_path}') | |
| class TextLoader: | |
| def __init__(self, file_path): | |
| self.file_path = file_path | |
| print(f'Text loader initialized with {file_path}') | |
| class CSVLoader: | |
| def __init__(self, file_path): | |
| self.file_path = file_path | |
| print(f'CSV loader initialized with {file_path}') | |
| # Function to determine the loader based on file extension | |
| def get_loader_by_file_extension(temp_file): | |
| if not isinstance(temp_file, str): | |
| raise TypeError("Expected file path as a string.") | |
| file_split = os.path.splitext(temp_file) | |
| file_extension = file_split[1] # Extract the extension | |
| print('file_extension - ', file_extension) | |
| # Initialize loader based on file extension | |
| if file_extension == '.pdf': | |
| loader = PyPDFLoader(temp_file) | |
| print('Loader Created for PDF file') | |
| elif file_extension == '.txt': | |
| loader = TextLoader(temp_file) | |
| elif file_extension == '.csv': | |
| loader = CSVLoader(temp_file) | |
| else: | |
| raise ValueError(f"Unsupported file type: {file_extension}") | |
| return loader | |
| # Test the function with different file types | |
| if __name__ == "__main__": | |
| test_files = [ | |
| "document.pdf", | |
| "notes.txt", | |
| "data.csv", | |
| "image.jpg" # This should raise an error | |
| ] | |
| for test_file in test_files: | |
| print(f"\nTesting with file: {test_file}") | |
| try: | |
| loader = get_loader_by_file_extension(test_file) | |
| except Exception as e: | |
| print(f'Error: {e}') | |