blob: 33095ffccc1d986f13bd8bc4e6790d355b3b13fe (
plain)
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
|
from asyncio import Queue
from enum import Enum
from typing import TypedDict
class HttpMessageType(Enum):
request = "request"
response = "response"
class Config(TypedDict):
version: str
subdomain: str
client_version: str
class HttpRequestData(TypedDict):
method: str
path: str
headers: list[tuple[str, str]]
body: str | None
class HttpResponseData(TypedDict):
status: int
headers: list[tuple[str, str]]
body: str | None
class HttpMessage(TypedDict):
type: HttpMessageType
identifier: str
payload: Config | HttpRequestData | HttpResponseData
class WebsocketMessageType(Enum):
connect = "connect"
disconnect = "disconnect"
message = "message"
ack = "ack"
class WebsocketConnectData(TypedDict):
path: str
headers: list[tuple[str, str]]
class WebsocketDisconnectData(TypedDict):
close_code: int
class WebsocketMessageData(TypedDict):
body: str | None
class WebsocketMessage(TypedDict):
type: WebsocketMessageType
identifier: str
payload: WebsocketConnectData | WebsocketDisconnectData | WebsocketMessageData
class MessageType(Enum):
request = "request"
response = "response"
ws_connect = "connect"
ws_disconnect = "disconnect"
ws_message = "message"
ws_ack = "ack"
Message = HttpMessage | WebsocketMessage
class MemoryConnection(TypedDict):
requests: Queue[Message]
responses: Queue[Message]
|