Source code for xtd.core.error

# -*- coding: utf-8
#------------------------------------------------------------------#

__author__    = "Xavier MARCELET <xavier@marcelet.com>"

#------------------------------------------------------------------#

[docs]class XtdError(BaseException):
[docs] def __init__(self, p_module, p_message, *p_args, **p_kwds): self.m_module = p_module self.m_message = p_message.format(*p_args, **p_kwds) super(XtdError, self).__init__()
[docs] def log(self): """todo""" pass
[docs] def __str__(self): return "[%(module)s] %(message)s" % { "module" : self.m_module, "message" : self.m_message }
#------------------------------------------------------------------#
[docs]class ConfigError(XtdError):
[docs] def __init__(self, p_message): super(ConfigError, self).__init__(p_module="config", p_message=p_message)
[docs]class ConfigValueError(ConfigError):
[docs] def __init__(self, p_section, p_option, p_message): l_fmt = "error with parameter '%(option)s' of section '%(section)s' : %(message)s" l_msg = l_fmt % { "option" : p_option, "section" : p_section, "message" : p_message } super(ConfigValueError, self).__init__(l_msg)
[docs]class ConfigValueFileError(ConfigValueError):
[docs] def __init__(self, p_section, p_option, p_fileName): l_message = "path '%s' does not name a file" % (p_fileName) super(ConfigValueFileError, self).__init__(p_section, p_option, l_message)
[docs]class ConfigValueDirError(ConfigValueError):
[docs] def __init__(self, p_section, p_option, p_fileName): l_message = "path '%s' does not name a directory" % (p_fileName) super(ConfigValueDirError, self).__init__(p_section, p_option, l_message)
[docs]class ConfigValueDirModeError(ConfigValueError):
[docs] def __init__(self, p_section, p_option, p_fileName, p_read = False, p_write = False, p_execute = False): l_modeString = "" if p_read: l_modeString += "r" else: l_modeString += "-" if p_write: l_modeString += "w" else: l_modeString += "-" if p_execute: l_modeString += "x" else: l_modeString += "-" l_message = "could not open directory '%s' with '%s' access" % (p_fileName, l_modeString) super(ConfigValueDirModeError, self).__init__(p_section, p_option, l_message)
[docs]class ConfigValueFileModeError(ConfigValueError):
[docs] def __init__(self, p_section, p_option, p_fileName, p_read = False, p_write = False, p_execute = False): l_modeString = "" if p_read: l_modeString += "r" else: l_modeString += "-" if p_write: l_modeString += "w" else: l_modeString += "-" if p_execute: l_modeString += "x" else: l_modeString += "-" l_message = "could not open path '%s' with '%s' access" % (p_fileName, l_modeString) super(ConfigValueFileModeError, self).__init__(p_section, p_option, l_message)
[docs]class ConfigValueTypeError(ConfigValueError): INT = "int" FLOAT = "float" BOOL = "bool"
[docs] def __init__(self, p_section, p_option, p_value, p_typeName): l_message = "could not cast value '%s' int type '%s'" % (p_value, p_typeName) super(ConfigValueTypeError, self).__init__(p_section, p_option, l_message)
[docs]class ConfigValueLimitsError(ConfigValueError):
[docs] def __init__(self, p_section, p_option, p_value, p_minValue = None, p_maxValue = None): if p_minValue is None: p_minValue = "-inf" if p_maxValue is None: p_maxValue = "inf" l_message = "value out of bounds, should be %s < %s < %s" % (p_minValue, p_value, p_maxValue) super(ConfigValueLimitsError, self).__init__(p_section, p_option, l_message)
[docs]class ConfigValueEnumError(ConfigValueError):
[docs] def __init__(self, p_section, p_option, p_value, p_authorizedValues): l_message = "value '%s' must be one of the following '%s'" % (p_value, str(p_authorizedValues)) super(ConfigValueEnumError, self).__init__(p_section, p_option, l_message)