|
7 | 7 |
|
8 | 8 | from opentelemetry import trace |
9 | 9 | from opentelemetry.trace import Span, SpanKind, Status, StatusCode |
10 | | -from pydantic import ( |
11 | | - BaseModel, |
12 | | - ValidationInfo, |
13 | | -) |
14 | 10 |
|
15 | | -from replit_river.error_schema import ERROR_CODE_UNKNOWN, RiverError, RiverException |
| 11 | +from replit_river.error_schema import RiverError, RiverException |
16 | 12 | from replit_river.transport_options import ( |
17 | 13 | HandshakeMetadataType, |
18 | 14 | TransportOptions, |
|
24 | 20 | tracer = trace.get_tracer(__name__) |
25 | 21 |
|
26 | 22 |
|
27 | | -@dataclass(frozen=True) |
28 | | -class RiverUnknownValue(BaseModel): |
29 | | - tag: Literal["RiverUnknownValue"] |
30 | | - value: Any |
31 | | - |
32 | | - |
33 | | -class RiverUnknownError(RiverError): |
34 | | - pass |
35 | | - |
36 | | - |
37 | | -def translate_unknown_value( |
38 | | - value: Any, handler: Callable[[Any], Any], info: ValidationInfo |
39 | | -) -> Any | RiverUnknownValue: |
40 | | - try: |
41 | | - return handler(value) |
42 | | - except Exception: |
43 | | - return RiverUnknownValue(tag="RiverUnknownValue", value=value) |
44 | | - |
45 | | - |
46 | | -def translate_unknown_error( |
47 | | - value: Any, handler: Callable[[Any], Any], info: ValidationInfo |
48 | | -) -> Any | RiverUnknownError: |
49 | | - try: |
50 | | - return handler(value) |
51 | | - except Exception: |
52 | | - if isinstance(value, dict) and "code" in value and "message" in value: |
53 | | - return RiverUnknownError( |
54 | | - code=value["code"], |
55 | | - message=value["message"], |
56 | | - ) |
57 | | - else: |
58 | | - return RiverUnknownError(code=ERROR_CODE_UNKNOWN, message="Unknown error") |
59 | | - |
60 | | - |
61 | 23 | class Client(Generic[HandshakeMetadataType]): |
62 | 24 | def __init__( |
63 | 25 | self, |
|
0 commit comments