File size: 595 Bytes
38c99d5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from dataclasses import dataclass
from typing import Any


ROADMAP_GENERATION_FAILED = "ROADMAP_GENERATION_FAILED"
RESOURCE_SEARCH_FAILED = "RESOURCE_SEARCH_FAILED"
MODEL_PROVIDER_FAILED = "MODEL_PROVIDER_FAILED"
SCHEMA_VALIDATION_FAILED = "SCHEMA_VALIDATION_FAILED"
LINK_VALIDATION_FAILED = "LINK_VALIDATION_FAILED"
CACHE_ERROR = "CACHE_ERROR"


@dataclass
class ServiceError(Exception):
    code: str
    message: str
    stage: str
    retryable: bool = True
    debug: dict[str, Any] | None = None

    def __str__(self) -> str:
        return f"{self.code} at {self.stage}: {self.message}"