Source code for blacktie.utils.errors

#*****************************************************************************
#  errors.py (part of the blacktie package)
#
#  (c) 2013 - Augustine Dunn
#  James Laboratory
#  Department of Biochemistry and Molecular Biology
#  University of California Irvine
#  wadunn83@gmail.com
#
#  Licenced under the GNU General Public License 3.0 license.
#******************************************************************************

"""
####################
errors.py
####################
Code defining custom base error classes to provide a foundation for graceful error handling.
"""
import warnings

[docs]class BlacktieError(StandardError): """Base class for exceptions in the blacktie package.""" pass
[docs]class SystemCallError(BlacktieError): """Error raised when a problem occurs while attempting to run an external system call. Attributes: | ``errno`` -- return code from system call | ``filename`` -- file in volved if any | ``strerror`` -- error msg """
[docs] def __init__(self,errno,strerror,filename=None): self.errno = errno self.strerror = strerror self.filename = filename
def __str__(self): if not self.filename: return """ERROR:\n %s.\nRETURN_STATE: %s.""" % (self.strerror.strip('\n'), self.errno) else: return """ERROR in %s:\n %s.\nRETURN_STATE: %s.""" % (self.filename, self.strerror.strip('\n'), self.errno)
[docs]class SanityCheckError(BlacktieError): """When a 'state check' comes back as conflicting or nonsensical.""" pass
[docs]class UnexpectedValueError(BlacktieError): """When values that "should" not be possible happen; like if a variable was changed unexpectedly.""" pass
[docs]class InvalidFileFormatError(BlacktieError): """When errors occur due to malformed file formats.""" pass
[docs]class MissingArgumentError(BlacktieError): """When a required argument is missing from the parsed command line options."""
[docs] def __init__(self,errMsg): self.msg = errMsg
def __str__(self): return """ERROR: %s""" % (self.msg)
class InvalidOptionError(BlacktieError): def __init__(self,optVal,optName,validVals=None): self.optVal = optVal self.optName = optName self.validVals = validVals def __str__(self): if self.validVals: return """ERROR: %s is not a valid value for arg:%s.\n\tValid values are: %s""" % (self.optVal,self.optName,self.validVals) else: return """ERROR: %s is not a valid value for arg:%s.""" % (self.optVal,self.optName)

Project Versions

This Page