Source code for air_sdk.exceptions

# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: MIT

"""
SDK-specific exceptions
"""

from typing import Optional


[docs] class AirError(Exception): def __init__( self, message: str = 'An error occurred within the air_sdk.AirApi', status_code: Optional[int] = None, ): self.status_code = status_code super().__init__(message)
[docs] class AirModelAttributeError(AirError): def __init__( self, message: str = 'An error occurred while accessing an AirModel attribute.', status_code: Optional[int] = None, ): self.message = message super().__init__(message=self.message, status_code=status_code)
[docs] class AirUnexpectedResponse(AirError): """Raised when the API returns an unexpected response.""" def __init__(self, message: str = '', status_code: Optional[int] = None) -> None: self.message = 'Received an unexpected response from the Air API' if status_code: self.message += f' ({status_code})' self.message += f': {message}' super().__init__(message=self.message, status_code=status_code)
[docs] class AirForbiddenError(AirError): """Raised when an API call returns a 403 Forbidden error""" def __init__( self, message: str = 'Received 403 Forbidden. Please call AirApi.authorize().' ) -> None: self.message = message super().__init__(message=self.message, status_code=403)
[docs] class AirObjectDeleted(AirError): """Raised when accessing a previously instantiated object that was deleted.""" def __init__(self, cls: type, message: str = '') -> None: self.message = message if not self.message: self.message = ( f'{cls} object has been deleted and should no longer be referenced' ) super().__init__(message=self.message)