-
Notifications
You must be signed in to change notification settings - Fork 423
Expand file tree
/
Copy patherrors.py
More file actions
115 lines (82 loc) · 3.64 KB
/
errors.py
File metadata and controls
115 lines (82 loc) · 3.64 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
"""Custom exceptions for the A2A client."""
from a2a.types import JSONRPCErrorResponse
class A2AClientError(Exception):
"""Base exception for A2A Client errors."""
class A2AClientHTTPError(A2AClientError):
"""Client exception for HTTP errors received from the server."""
def __init__(self, status_code: int, message: str):
"""Initializes the A2AClientHTTPError.
Args:
status_code: The HTTP status code of the response.
message: A descriptive error message.
"""
self.status_code = status_code
self.message = message
super().__init__(f'HTTP Error {status_code}: {message}')
def __repr__(self) -> str:
"""Returns an unambiguous representation showing structured attributes."""
return (
f'{self.__class__.__name__}('
f'status_code={self.status_code!r}, '
f'message={self.message!r})'
)
class A2AClientJSONError(A2AClientError):
"""Client exception for JSON errors during response parsing or validation."""
def __init__(self, message: str):
"""Initializes the A2AClientJSONError.
Args:
message: A descriptive error message.
"""
self.message = message
super().__init__(f'JSON Error: {message}')
def __repr__(self) -> str:
"""Returns an unambiguous representation showing structured attributes."""
return f'{self.__class__.__name__}(message={self.message!r})'
class A2AClientTimeoutError(A2AClientError):
"""Client exception for timeout errors during a request."""
def __init__(self, message: str):
"""Initializes the A2AClientTimeoutError.
Args:
message: A descriptive error message.
"""
self.message = message
super().__init__(f'Timeout Error: {message}')
def __repr__(self) -> str:
"""Returns an unambiguous representation showing structured attributes."""
return f'{self.__class__.__name__}(message={self.message!r})'
class A2AClientInvalidArgsError(A2AClientError):
"""Client exception for invalid arguments passed to a method."""
def __init__(self, message: str):
"""Initializes the A2AClientInvalidArgsError.
Args:
message: A descriptive error message.
"""
self.message = message
super().__init__(f'Invalid arguments error: {message}')
def __repr__(self) -> str:
"""Returns an unambiguous representation showing structured attributes."""
return f'{self.__class__.__name__}(message={self.message!r})'
class A2AClientInvalidStateError(A2AClientError):
"""Client exception for an invalid client state."""
def __init__(self, message: str):
"""Initializes the A2AClientInvalidStateError.
Args:
message: A descriptive error message.
"""
self.message = message
super().__init__(f'Invalid state error: {message}')
def __repr__(self) -> str:
"""Returns an unambiguous representation showing structured attributes."""
return f'{self.__class__.__name__}(message={self.message!r})'
class A2AClientJSONRPCError(A2AClientError):
"""Client exception for JSON-RPC errors returned by the server."""
def __init__(self, error: JSONRPCErrorResponse):
"""Initializes the A2AClientJsonRPCError.
Args:
error: The JSON-RPC error object.
"""
self.error = error.error
super().__init__(f'JSON-RPC Error {error.error}')
def __repr__(self) -> str:
"""Returns an unambiguous representation showing the JSON-RPC error object."""
return f'{self.__class__.__name__}({self.error!r})'