Source code for espresso.exceptions
"""
===================
Espresso exceptions
===================
Submodule for Espresso exceptions.
"""
[docs]class EspressoError(Exception):
"""Base class for all Espresso errors"""
pass
# Multiple inheritance means this can be caught by all of the following:
# ... except InvalidExampleError
# ... except EspressoError
# ... except ValueError
[docs]class InvalidExampleError(EspressoError, ValueError):
r"""Raised if user attempts to instantiate an example number that does not exist
This is a subclass of both :exc:`EspressoError` and :exc:`ValueError`.
Examples
--------
>>> from espresso import SimpleRegression, InvalidExampleError
>>> try:
... reg = SimpleRegression(6)
... except InvalidExampleError:
... print("InvalidExampleError triggered")
...
InvalidExampleError triggered
"""
def __init__(self, *args):
super().__init__(*args)
def __str__(self):
super_msg = super().__str__()
msg = (
"Unrecognised example number.\n\nPlease refer to the Espresso documentation"
" (https://geo-espresso.readthedocs.io/)\nfor full details of the examples"
" provided within this test problem."
)
if len(super_msg) > 0:
return msg + "\n\n" + super_msg
else:
return msg