mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-17 05:47:58 +08:00
str(e) and e.message will both show the error message. refactored the error.py file to simplify our exception class definitions
48 lines
2.1 KiB
Python
48 lines
2.1 KiB
Python
from http import HTTPStatus
|
|
|
|
|
|
class CellxgeneException(Exception):
|
|
"""Base class for cellxgene exceptions"""
|
|
|
|
def __init__(self, message):
|
|
self.message = message
|
|
super().__init__(message)
|
|
|
|
|
|
class RequestException(CellxgeneException):
|
|
"""Baseclass for exceptions that can be raised from a request."""
|
|
|
|
# The default status code is 400 (Bad Request)
|
|
default_status_code = HTTPStatus.BAD_REQUEST
|
|
|
|
def __init__(self, message, status_code=None):
|
|
super().__init__(message)
|
|
self.status_code = status_code or self.default_status_code
|
|
|
|
|
|
def define_exception(name, doc):
|
|
globals()[name] = type(name, (CellxgeneException,), dict(__doc__=doc))
|
|
|
|
|
|
def define_request_exception(name, doc, default_status_code=HTTPStatus.BAD_REQUEST):
|
|
globals()[name] = type(name, (RequestException,), dict(__doc__=doc, default_status_code=default_status_code))
|
|
|
|
|
|
define_request_exception("FilterError", "Raised when filter is malformed")
|
|
define_request_exception("JSONEncodingValueError", "Raised when data cannot be encoded into json")
|
|
define_request_exception("MimeTypeError", "Raised when incompatible MIME type selected")
|
|
define_request_exception("DatasetAccessError", "Raised when file loaded into a DataAdaptor is misformatted")
|
|
define_request_exception("DisabledFeatureError", "Raised when an attempt to use a disabled feature occurs")
|
|
define_request_exception("AnnotationsError", "Raised when an attempt to use the annotations feature fails")
|
|
define_request_exception(
|
|
"ComputeError",
|
|
"Raised when an error occurs during a compute algorithm (such as diffexp)",
|
|
HTTPStatus.INTERNAL_SERVER_ERROR,
|
|
)
|
|
define_request_exception("ExceedsLimitError", "Raised when an HTTP request exceeds a limit/quota")
|
|
define_request_exception("ColorFormatException", "Raised when color helper functions encounter an unknown color format")
|
|
|
|
define_exception("OntologyLoadFailure", "Raised when reading the ontology file fails")
|
|
define_exception("ConfigurationError", "Raised when checking configuration errors")
|
|
define_exception("PrepareError", "Raised when data is misprepared")
|