Browse Source

Add FileImportException class

pull/1823/head
Hironsan 2 years ago
parent
commit
96e1cade44
2 changed files with 13 additions and 5 deletions
  1. 4
      backend/data_import/celery_tasks.py
  2. 14
      backend/data_import/pipeline/exceptions.py

4
backend/data_import/celery_tasks.py

@ -10,7 +10,7 @@ from django_drf_filepond.models import TemporaryUpload
from .datasets import load_dataset from .datasets import load_dataset
from .pipeline.catalog import AudioFile, ImageFile from .pipeline.catalog import AudioFile, ImageFile
from .pipeline.exceptions import FileTypeException, MaximumFileSizeException
from .pipeline.exceptions import FileTypeException, MaximumFileSizeException, FileImportException
from .pipeline.readers import FileName from .pipeline.readers import FileName
from projects.models import Project from projects.models import Project
@ -30,7 +30,7 @@ def check_file_type(filename, file_format: str, filepath: str):
def check_uploaded_files(upload_ids: List[str], file_format: str): def check_uploaded_files(upload_ids: List[str], file_format: str):
errors = []
errors: List[FileImportException] = []
cleaned_ids = [] cleaned_ids = []
temporary_uploads = TemporaryUpload.objects.filter(upload_id__in=upload_ids) temporary_uploads = TemporaryUpload.objects.filter(upload_id__in=upload_ids)
for tu in temporary_uploads: for tu in temporary_uploads:

14
backend/data_import/pipeline/exceptions.py

@ -1,4 +1,12 @@
class FileParseException(Exception):
from typing import Dict, Any
class FileImportException(Exception):
def dict(self) -> Dict[str, Any]:
raise NotImplementedError()
class FileParseException(FileImportException):
def __init__(self, filename: str, line_num: int, message: str): def __init__(self, filename: str, line_num: int, message: str):
self.filename = filename self.filename = filename
self.line_num = line_num self.line_num = line_num
@ -11,7 +19,7 @@ class FileParseException(Exception):
return {"filename": self.filename, "line": self.line_num, "message": self.message} return {"filename": self.filename, "line": self.line_num, "message": self.message}
class MaximumFileSizeException(Exception):
class MaximumFileSizeException(FileImportException):
def __init__(self, filename: str, max_size: int): def __init__(self, filename: str, max_size: int):
self.filename = filename self.filename = filename
self.max_size = max_size self.max_size = max_size
@ -23,7 +31,7 @@ class MaximumFileSizeException(Exception):
return {"filename": self.filename, "line": -1, "message": str(self)} return {"filename": self.filename, "line": -1, "message": str(self)}
class FileTypeException(Exception):
class FileTypeException(FileImportException):
def __init__(self, filename: str, filetype: str, allowed_types=None): def __init__(self, filename: str, filetype: str, allowed_types=None):
self.filename = filename self.filename = filename
self.filetype = filetype self.filetype = filetype

Loading…
Cancel
Save