Spaces:
Paused
Paused
File size: 2,247 Bytes
f80f41e 389d6f7 f80f41e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | from enum import Enum
from constants import (
STATUS_CODE_BAD_REQUEST,
STATUS_CODE_CONTENT_TOO_LARGE,
STATUS_CODE_INTERNAL_SERVER_ERROR,
STATUS_CODE_LENGTH_REQUIRED,
STATUS_CODE_UNSUPPORTED_MEDIA_TYPE,
)
class FileValidationError(Enum):
MISSING_SIZE = "MISSING_SIZE"
FILE_TOO_LARGE = "FILE_TOO_LARGE"
MISSING_FILE_NAME = "MISSING_FILE_NAME"
FILE_NAME_TOO_LARGE = "FILE_NAME_TOO_LARGE"
INVALID_FILE_NAME = "INVALID_FILE_NAME"
INVALID_MIME_TYPE = "INVALID_MIME_TYPE"
UNSUPPORTED_EXTENSION = "UNSUPPORTED_EXTENSION"
EMPTY_FILE = "EMPTY_FILE"
class FileValidationException(Exception):
def __init__(self, error: FileValidationError):
self.error = error
FILE_VALIDATION_ERROR_STATUS_CODES = {
FileValidationError.MISSING_SIZE: STATUS_CODE_LENGTH_REQUIRED,
FileValidationError.FILE_TOO_LARGE: STATUS_CODE_CONTENT_TOO_LARGE,
FileValidationError.MISSING_FILE_NAME: STATUS_CODE_BAD_REQUEST,
FileValidationError.FILE_NAME_TOO_LARGE: STATUS_CODE_BAD_REQUEST,
FileValidationError.INVALID_FILE_NAME: STATUS_CODE_BAD_REQUEST,
FileValidationError.INVALID_MIME_TYPE: STATUS_CODE_UNSUPPORTED_MEDIA_TYPE,
FileValidationError.UNSUPPORTED_EXTENSION: STATUS_CODE_UNSUPPORTED_MEDIA_TYPE,
FileValidationError.EMPTY_FILE: STATUS_CODE_BAD_REQUEST,
}
class FileExtractionError(Enum):
INVALID_MIME_TYPE = "INVALID_MIME_TYPE"
NO_TEXT = "NO_TEXT"
TEXT_EXTRACTION_TIMEOUT = "TEXT_EXTRACTION_TIMEOUT"
UNSAFE_ZIP = "UNSAFE_ZIP"
FILE_TOO_LARGE = "FILE_TOO_LARGE"
MALFORMED_FILE = "MALFORMED_FILE"
class FileExtractionException(Exception):
def __init__(self, error: FileExtractionError):
self.error = error
FILE_EXTRACTION_ERROR_STATUS_CODES = {
FileExtractionError.INVALID_MIME_TYPE: STATUS_CODE_UNSUPPORTED_MEDIA_TYPE,
FileExtractionError.NO_TEXT: STATUS_CODE_BAD_REQUEST,
FileExtractionError.TEXT_EXTRACTION_TIMEOUT: STATUS_CODE_INTERNAL_SERVER_ERROR,
FileExtractionError.UNSAFE_ZIP: STATUS_CODE_INTERNAL_SERVER_ERROR,
FileExtractionError.FILE_TOO_LARGE: STATUS_CODE_CONTENT_TOO_LARGE,
FileExtractionError.MALFORMED_FILE: STATUS_CODE_BAD_REQUEST,
}
|