Source code for elkpy.sushierrors

__author__ = "Ruben Svensson"
__copyright__ = """

    Copyright 2017-2019 Modern Ancient Instruments Networked AB, dba Elk

    elkpy is free software: you can redistribute it and/or modify it under the terms of the
    GNU General Public License as published by the Free Software Foundation, either version 3
    of the License, or (at your option) any later version.

    elkpy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
    even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along with elkpy.  If
    not, see <http://www.gnu.org/licenses/>.
"""
__license__ = "GPL-3.0"


############################
# Error handling functions #
############################

from typing import NoReturn


[docs] class SushiUnkownError(Exception): pass
[docs] class SushiUnsupportedOperationError(Exception): pass
[docs] class SushiNotFoundError(Exception): pass
[docs] class SushiOutOfRangeError(Exception): pass
[docs] class SushiInvalidArgumentError(Exception): pass
[docs] class SushiInternalError(Exception): pass
[docs] class SushiUnavailableError(Exception): pass
[docs] def grpc_error_handling(e, context_info="") -> NoReturn: if e.code().name == "UNKNOWN": raise SushiUnkownError(e.details(), context_info) from e elif e.code().name == "FAILED_PRECONDITION": raise SushiUnsupportedOperationError(e.details(), context_info) from e elif e.code().name == "NOT_FOUND": raise SushiNotFoundError(e.details(), context_info) from e elif e.code().name == "OUT_OF_RANGE": raise SushiOutOfRangeError(e.details(), context_info) from e elif e.code().name == "INVALID_ARGUMENT": raise SushiInvalidArgumentError(e.details(), context_info) from e elif e.code().name == "INTERNAL": raise SushiInternalError(e.details(), context_info) from e elif e.code().name == "UNAVAILABLE": raise SushiUnavailableError(e.details(), context_info) from e else: if context_info != "": print(context_info) raise e