Spaces:
Paused
Paused
| 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, | |
| } | |