File: _errors.py

package info (click to toggle)
anta 1.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,048 kB
  • sloc: python: 48,164; sh: 28; javascript: 9; makefile: 4
file content (36 lines) | stat: -rw-r--r-- 1,024 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Copyright (c) 2024-2025 Arista Networks, Inc.
# Use of this source code is governed by the Apache License 2.0
# that can be found in the LICENSE file.
"""Exceptions for the asynceapi package."""

from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from asynceapi._models import EapiResponse


class EapiReponseError(Exception):
    """Exception raised when an eAPI response contains errors.

    Attributes
    ----------
    response : EapiResponse
        The eAPI response that contains the error.
    """

    def __init__(self, response: EapiResponse) -> None:
        """Initialize the EapiReponseError exception."""
        self.response = response

        # Build a descriptive error message
        message = "Error in eAPI response"

        if response.error_code is not None:
            message += f" (code: {response.error_code})"

        if response.error_message is not None:
            message += f": {response.error_message}"

        super().__init__(message)