mirror of https://github.com/doccano/doccano.git
pythondatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learningannotation-tool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.6 KiB
53 lines
1.6 KiB
from typing import Any, Dict
|
|
|
|
|
|
class FileImportException(Exception):
|
|
def dict(self) -> Dict[str, Any]:
|
|
raise NotImplementedError()
|
|
|
|
|
|
class FileParseException(FileImportException):
|
|
def __init__(self, filename: str, line_num: int, message: str):
|
|
self.filename = filename
|
|
self.line_num = line_num
|
|
self.message = message
|
|
|
|
def __str__(self):
|
|
return f"ParseError: You cannot parse line {self.line_num} in {self.filename}: {self.message}"
|
|
|
|
def dict(self):
|
|
return {"filename": self.filename, "line": self.line_num, "message": self.message}
|
|
|
|
|
|
class MaximumFileSizeException(FileImportException):
|
|
def __init__(self, filename: str, max_size: int):
|
|
self.filename = filename
|
|
self.max_size = max_size
|
|
|
|
def __str__(self):
|
|
return f"The maximum file size that can be uploaded is {self.max_size/1024/1024} MB"
|
|
|
|
def dict(self):
|
|
return {"filename": self.filename, "line": -1, "message": str(self)}
|
|
|
|
|
|
class FileTypeException(FileImportException):
|
|
def __init__(self, filename: str, filetype: str, allowed_types=None):
|
|
self.filename = filename
|
|
self.filetype = filetype
|
|
self.allowed_types = allowed_types
|
|
|
|
def __str__(self):
|
|
return f"The file type {self.filetype} is unexpected. Expected: {self.allowed_types}"
|
|
|
|
def dict(self):
|
|
return {"filename": self.filename, "line": -1, "message": str(self)}
|
|
|
|
|
|
class FileFormatException(FileImportException):
|
|
def __init__(self, file_format: str):
|
|
self.file_format = file_format
|
|
|
|
def dict(self):
|
|
message = f"Unknown file format: {self.file_format}"
|
|
return {"message": message}
|