sched: address R1 findings on shared traversal and resolver threading
This commit is contained in:
@@ -205,6 +205,15 @@ def validate_input_expression_limits(
|
||||
visit_expression(value, depth=1, location="expression")
|
||||
|
||||
|
||||
def _check_expression_limits(value: object) -> object:
|
||||
"""Share the budget validator across graph and schedule bindings."""
|
||||
raw_value = (
|
||||
value.model_dump(mode="python") if isinstance(value, BaseModel) else value
|
||||
)
|
||||
validate_input_expression_limits(raw_value)
|
||||
return value
|
||||
|
||||
|
||||
class InputExpressionBinding(BaseModel):
|
||||
"""Assign one recursively composed expression to a node-local target."""
|
||||
|
||||
@@ -216,11 +225,7 @@ class InputExpressionBinding(BaseModel):
|
||||
@field_validator("expression", mode="before")
|
||||
@classmethod
|
||||
def check_limits(cls, value: object) -> object:
|
||||
raw_value = (
|
||||
value.model_dump(mode="python") if isinstance(value, BaseModel) else value
|
||||
)
|
||||
validate_input_expression_limits(raw_value)
|
||||
return value
|
||||
return _check_expression_limits(value)
|
||||
|
||||
|
||||
InputBinding = Annotated[
|
||||
@@ -262,11 +267,7 @@ class ScheduleInputBinding(BaseModel):
|
||||
@field_validator("expression", mode="before")
|
||||
@classmethod
|
||||
def check_limits(cls, value: object) -> object:
|
||||
raw_value = (
|
||||
value.model_dump(mode="python") if isinstance(value, BaseModel) else value
|
||||
)
|
||||
validate_input_expression_limits(raw_value)
|
||||
return value
|
||||
return _check_expression_limits(value)
|
||||
|
||||
|
||||
for _model in (
|
||||
|
||||
Reference in New Issue
Block a user