59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
|
|
class Error(Exception):
|
|
pass
|
|
class ApiError(Error):
|
|
pass
|
|
class KnownError(ApiError):
|
|
"""A known error condition"""
|
|
class UsageError(ApiError):
|
|
"""A known error condition where help should be displayed"""
|
|
|
|
class ControlledSchemaError(Error):
|
|
pass
|
|
class InvalidVersionError(ControlledSchemaError):
|
|
"""Invalid version number"""
|
|
class DatabaseNotControlledError(ControlledSchemaError):
|
|
"""Database shouldn't be under vc, but it is"""
|
|
class DatabaseAlreadyControlledError(ControlledSchemaError):
|
|
"""Database should be under vc, but it's not"""
|
|
class WrongRepositoryError(ControlledSchemaError):
|
|
"""This database is under version control by another repository"""
|
|
class NoSuchTableError(ControlledSchemaError):
|
|
pass
|
|
|
|
class LogSqlError(Error):
|
|
"""A SQLError, with a traceback of where that statement was logged"""
|
|
def __init__(self,sqlerror,entry):
|
|
Exception.__init__(self)
|
|
self.sqlerror = sqlerror
|
|
self.entry = entry
|
|
def __str__(self):
|
|
ret = "SQL error in statement: \n%s\n"%(str(self.entry))
|
|
ret += "Traceback from change script:\n"
|
|
ret += ''.join(traceback.format_list(self.entry.traceback))
|
|
ret += str(self.sqlerror)
|
|
return ret
|
|
|
|
class PathError(Error):
|
|
pass
|
|
class PathNotFoundError(PathError):
|
|
"""A path with no file was required; found a file"""
|
|
pass
|
|
class PathFoundError(PathError):
|
|
"""A path with a file was required; found no file"""
|
|
pass
|
|
|
|
class RepositoryError(Error):
|
|
pass
|
|
class InvalidRepositoryError(RepositoryError):
|
|
pass
|
|
|
|
class ScriptError(Error):
|
|
pass
|
|
class InvalidScriptError(ScriptError):
|
|
pass
|
|
|
|
class InvalidVersionError(Error):
|
|
pass
|
|
|