Spaces:
Building
Building
Update exceptions.py
Browse files- exceptions.py +13 -5
exceptions.py
CHANGED
@@ -5,20 +5,28 @@ from typing import Optional, Dict, Any
|
|
5 |
from datetime import datetime
|
6 |
|
7 |
class FlareException(Exception):
|
8 |
-
"""Base exception for
|
9 |
def __init__(self, message: str, details: Optional[Dict[str, Any]] = None):
|
10 |
-
super().__init__(message)
|
11 |
self.message = message
|
12 |
self.details = details or {}
|
13 |
-
self.timestamp = datetime.utcnow()
|
|
|
14 |
|
15 |
def to_dict(self) -> Dict[str, Any]:
|
16 |
-
"""Convert exception to dictionary
|
17 |
return {
|
18 |
"error": self.__class__.__name__,
|
19 |
"message": self.message,
|
20 |
"details": self.details,
|
21 |
-
"timestamp": self.timestamp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
}
|
23 |
|
24 |
class RaceConditionError(FlareException):
|
|
|
5 |
from datetime import datetime
|
6 |
|
7 |
class FlareException(Exception):
|
8 |
+
"""Base exception for Flare"""
|
9 |
def __init__(self, message: str, details: Optional[Dict[str, Any]] = None):
|
|
|
10 |
self.message = message
|
11 |
self.details = details or {}
|
12 |
+
self.timestamp = datetime.utcnow()
|
13 |
+
super().__init__(self.message)
|
14 |
|
15 |
def to_dict(self) -> Dict[str, Any]:
|
16 |
+
"""Convert exception to dictionary"""
|
17 |
return {
|
18 |
"error": self.__class__.__name__,
|
19 |
"message": self.message,
|
20 |
"details": self.details,
|
21 |
+
"timestamp": self.timestamp.isoformat()
|
22 |
+
}
|
23 |
+
|
24 |
+
def to_http_detail(self) -> Dict[str, Any]:
|
25 |
+
"""Convert to HTTP response detail"""
|
26 |
+
return {
|
27 |
+
"detail": self.message,
|
28 |
+
"error_type": self.__class__.__name__.lower().replace('error', ''),
|
29 |
+
**self.details
|
30 |
}
|
31 |
|
32 |
class RaceConditionError(FlareException):
|