path-foundation-demo / pete_errors.py
lirony's picture
v1
960a64d
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Error classes for Pete."""
class InternalBugError(Exception):
"""Internal error capture exceptions which should never happen.
The exception is purposefully not a child of PeteError to prevent it from
being caught by pete exception handling logic. If InternalBugError are
raised they should be investigated as bugs. Most internal errors check for
expected conditions between the EZ-WSI pete interface.
"""
class PeteError(Exception):
"""Base error class for Pete Errors."""
def __init__(self, message: str = '', api_description: str = ''):
"""Errors with optional alternative descriptions for API echoing."""
super().__init__(message if message else api_description)
self._api_description = api_description
@property
def api_description(self) -> str:
"""Returns the API description of the error."""
return self._api_description if self._api_description else str(self)
class InstancesNotConcatenatedError(PeteError):
pass
class InvalidRequestFieldError(PeteError):
pass
class InvalidResponseError(PeteError):
pass
class InvalidCredentialsError(PeteError):
pass
class LevelNotFoundError(PeteError):
pass
class TooManyPatchesError(PeteError):
pass
class EzWsiStateError(PeteError):
pass
class GcsImagePathFormatError(PeteError):
pass
class ImageError(PeteError):
pass
class PatchOutsideOfImageDimensionsError(PeteError):
pass
class HttpError(PeteError):
pass
class InvalidIccProfileTransformError(PeteError):
pass
class ImageDimensionError(PeteError):
pass
class DicomTiledFullError(PeteError):
pass
class DicomPathError(PeteError):
pass
class DicomError(PeteError):
pass
class DicomImageDownsamplingTooLargeError(PeteError):
pass
class UnapprovedDicomStoreError(PeteError):
pass
class UnapprovedGcsBucketError(PeteError):
pass
class PatchDimensionsDoNotMatchEndpointInputDimensionsError(PeteError):
pass