Skip to content

Commit 4b0bf0b

Browse files
committed
Avoid circular import in WorkerProcessResult
Signed-off-by: Samuel Monson <[email protected]>
1 parent 07df116 commit 4b0bf0b

File tree

4 files changed

+41
-39
lines changed

4 files changed

+41
-39
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/scheduler.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@
1717
from guidellm.config import settings
1818
from guidellm.request.session import RequestSession
1919
from guidellm.scheduler.result import (
20+
MPQueues,
2021
SchedulerRequestResult,
2122
SchedulerResult,
2223
SchedulerRunInfo,
24+
WorkerProcessRequestTime,
25+
WorkerProcessResult,
2326
)
2427
from guidellm.scheduler.strategy import SchedulingStrategy
2528
from guidellm.scheduler.types import (
26-
MPQueues,
2729
RequestT,
2830
ResponseT,
29-
WorkerProcessRequestTime,
30-
WorkerProcessResult,
3131
)
3232
from guidellm.scheduler.worker import (
3333
RequestsWorker,

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]]

src/guidellm/scheduler/worker.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,12 @@
2727
from guidellm.objects import StandardBaseModel
2828
from guidellm.request import GenerationRequest
2929
from guidellm.request.session import RequestSession
30-
from guidellm.scheduler.result import SchedulerRequestInfo
31-
from guidellm.scheduler.types import MPQueues, RequestT, ResponseT, WorkerProcessResult
30+
from guidellm.scheduler.result import (
31+
MPQueues,
32+
SchedulerRequestInfo,
33+
WorkerProcessResult,
34+
)
35+
from guidellm.scheduler.types import RequestT, ResponseT
3236

3337
__all__ = [
3438
"GenerativeRequestsWorker",

0 commit comments

Comments
 (0)