Spaces:
Paused
Paused
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):
|