Skip to content

Commit 3a4b48a

Browse files
committed
Avoid circular import in WorkerProcessResult
1 parent 6be5be0 commit 3a4b48a

File tree

2 files changed

+32
-34
lines changed

2 files changed

+32
-34
lines changed

src/guidellm/scheduler/result.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
1+
from dataclasses import dataclass
2+
from multiprocessing import Queue
13
from typing import (
24
Generic,
35
Literal,
46
Optional,
57
)
68

79
from guidellm.objects import StandardBaseModel
10+
from guidellm.request.session import RequestSession
811
from guidellm.scheduler.strategy import SchedulingStrategy
912
from guidellm.scheduler.types import RequestT, ResponseT
1013

1114
__all__ = [
15+
"MPQueues",
1216
"SchedulerRequestInfo",
1317
"SchedulerRequestResult",
1418
"SchedulerResult",
1519
"SchedulerRunInfo",
20+
"WorkerProcessRequestTime",
21+
"WorkerProcessResult",
1622
]
1723

1824

@@ -135,3 +141,28 @@ class SchedulerRequestResult(
135141
request: RequestT
136142
request_info: SchedulerRequestInfo
137143
response: Optional[ResponseT] = None
144+
145+
146+
# TODO: Move dataclasses somewhere else
147+
148+
149+
@dataclass
150+
class WorkerProcessRequestTime:
151+
start_time: float
152+
timeout_time: float
153+
queued_time: float
154+
155+
156+
@dataclass
157+
class WorkerProcessResult(Generic[RequestT, ResponseT]):
158+
type_: Literal["request_scheduled", "request_start", "request_complete"]
159+
request: RequestT
160+
response: Optional[ResponseT]
161+
info: SchedulerRequestInfo
162+
163+
164+
@dataclass
165+
class MPQueues(Generic[RequestT, ResponseT]):
166+
requests: Queue[RequestSession[RequestT, ResponseT]]
167+
times: Queue[WorkerProcessRequestTime]
168+
responses: Queue[WorkerProcessResult[RequestT, ResponseT]]

src/guidellm/scheduler/types.py

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,10 @@
1-
from dataclasses import dataclass
2-
from multiprocessing import Queue
3-
from typing import Generic, Literal, Optional, TypeVar
4-
5-
from guidellm.request.session import RequestSession
6-
from guidellm.scheduler.result import SchedulerRequestInfo
1+
from typing import TypeVar
72

83
__all__ = [
9-
"MPQueues",
104
"RequestT",
115
"ResponseT",
12-
"WorkerProcessRequestTime",
13-
"WorkerProcessResult",
146
]
157

168

179
RequestT = TypeVar("RequestT")
1810
ResponseT = TypeVar("ResponseT")
19-
20-
21-
# TODO: Move dataclasses somewhere else
22-
23-
24-
@dataclass
25-
class WorkerProcessRequestTime:
26-
start_time: float
27-
timeout_time: float
28-
queued_time: float
29-
30-
31-
@dataclass
32-
class WorkerProcessResult(Generic[RequestT, ResponseT]):
33-
type_: Literal["request_scheduled", "request_start", "request_complete"]
34-
request: RequestT
35-
response: Optional[ResponseT]
36-
info: SchedulerRequestInfo
37-
38-
39-
@dataclass
40-
class MPQueues(Generic[RequestT, ResponseT]):
41-
requests: Queue[RequestSession[RequestT, ResponseT]]
42-
times: Queue[WorkerProcessRequestTime]
43-
responses: Queue[WorkerProcessResult[RequestT, ResponseT]]

0 commit comments

Comments
 (0)