1414
1515from pydantic import Field
1616
17- from guidellm .scheduler .schemas import SchedulerState , SchedulerUpdateAction
17+ from guidellm .scheduler .schemas import (
18+ SchedulerState ,
19+ SchedulerUpdateAction ,
20+ )
1821from guidellm .schemas import RequestInfo
1922from guidellm .settings import settings
23+
2024from .base import PydanticConstraintInitializer
2125from .factory import ConstraintsInitializerFactory
2226from .protocols import Constraint
@@ -362,10 +366,10 @@ def __call__(
362366 elif (
363367 request_info .status == "completed"
364368 and request_info .timings
365- and request_info .timings .first_iteration
369+ and request_info .timings .first_token_iteration
366370 ):
367371 ttft = (
368- request_info .timings .first_iteration
372+ request_info .timings .first_token_iteration
369373 - request_info .timings .request_start
370374 )
371375 self .over_saturation_detector .add_finished (
@@ -436,13 +440,13 @@ def create_constraint(self, **_kwargs) -> Constraint:
436440 minimum_duration = self .min_seconds ,
437441 maximum_window_seconds = self .max_window_seconds ,
438442 )
439- return OverSaturationConstraint (
443+ return OverSaturationConstraint ( # type: ignore[return-value]
440444 over_saturation_detector = over_saturation_detector ,
441445 stop_over_saturated = self .stop_over_saturated ,
442446 )
443447
444448 @classmethod
445- def validated_kwargs (cls , stop_over_saturated : bool , ** kwargs ) -> dict [str , Any ]:
449+ def validated_kwargs (cls , stop_over_saturated : bool | None = None , ** kwargs ) -> dict [str , Any ]:
446450 """
447451 Validate and process arguments for OverSaturationConstraint creation.
448452
@@ -451,8 +455,10 @@ def validated_kwargs(cls, stop_over_saturated: bool, **kwargs) -> dict[str, Any]
451455 :return: Validated dictionary with stop_over_saturated field
452456 """
453457 aliases = ["stop_over_saturated" , "stop_over_sat" , "stop_osd" ]
458+ result = stop_over_saturated if stop_over_saturated is not None else False
454459 for alias in aliases :
455- stop_over_saturated = stop_over_saturated or kwargs .get (alias )
456-
457- return { "stop_over_saturated" : stop_over_saturated }
460+ alias_value = kwargs .get (alias )
461+ if alias_value is not None :
462+ result = bool ( alias_value ) or result
458463
464+ return {"stop_over_saturated" : result }
0 commit comments