Source code for eptransition.exceptions
[docs]class UnimplementedMethodException(Exception):
"""
This exception occurs when a call is made to a function that should be implemented in a derived class
but is not, so the base class function is called. This is a developer issue.
:param str class_name: The name of the base class where the virtual function is defined
:param str method_name: The method name which should be overridden in the derived class
"""
def __init__(self, class_name, method_name):
self.class_name = class_name
self.method_name = method_name
def __str__(self):
return "{} derived classes should override {}() method".format(self.class_name, self.method_name)
[docs]class FileAccessException(Exception):
"""
This exception occurs when the transition tool encounters a problem accessing a prescribed input or output file.
:param str file_path: The file path which is causing the issue
:param str problem_type: The type of problem occurring, from the constants defined in this class
:param str file_nickname: The nickname of the file, from the constants defined in this class
:param str message: An optional additional message to write out
"""
CANNOT_FIND_FILE = "cannot find file"
CANNOT_READ_FILE = "cannot read file"
CANNOT_WRITE_TO_FILE = "cannot write to file"
FILE_EXISTS_MUST_DELETE = "file exists, must delete"
TRIED_BUT_CANNOT_DELETE_FILE = "tried to delete file, but couldn't"
ORIGINAL_INPUT_FILE = "original input file"
UPDATED_INPUT_FILE = "updated input file"
ORIGINAL_DICT_FILE = "original dictionary file"
UPDATED_DICT_FILE = "updated dictionary file"
def __init__(self, file_path, problem_type, file_nickname, message=None):
self.file_path = file_path
self.problem_type = problem_type
self.file_nickname = file_nickname
self.message = message
def __str__(self):
s = "File access problem occurred:\n Trying to operate on *{}* at \"{}\"\n Problem: {}".format(
self.file_nickname, self.file_path, self.problem_type)
if self.message:
s += " Message: " + self.message
return s
[docs]class FileTypeException(Exception):
"""
This exception occurs when the prescribed file types do not match the expected conditions.
"""
ORIGINAL_INPUT_FILE = "original input file"
UPDATED_INPUT_FILE = "updated input file"
ORIGINAL_DICT_FILE = "original dictionary file"
UPDATED_DICT_FILE = "updated dictionary file"
def __init__(self, file_path, file_nickname, message):
self.file_path = file_path
self.file_nickname = file_nickname
self.message = message
def __str__(self):
return "File type problem occurred:\n Trying to operate on *{}* at \"{}\"\n Problem: {}".format(
self.file_nickname, self.file_path, self.message
)
[docs]class ManagerProcessingException(Exception):
"""
This exception occurs when the transition tool encounters an unexpected issue when doing the transition.
"""
def __init__(self, msg, issues=None):
self.message = msg
self.issues = issues
def __str__(self):
msg = ""
if self.issues:
for i in self.issues:
msg += str(i) + "\n"
msg += self.message
return msg
[docs]class ProcessingException(Exception):
"""
This exception occurs when an unexpected error occurs during the processing of an input file.
"""
def __init__(self, message, line_index=None, object_name="", field_name=""):
super(ProcessingException, self).__init__(message)
self.message = message
self.line_index = line_index
def __str__(self):
return "Processing Exception on line number {}; message: {}".format(self.line_index, self.message)