sched: address R1 findings on shared traversal and resolver threading

This commit is contained in:
lda
2026-09-08 10:15:36 +07:00 Verified
parent 0ded9b0d40
commit 46c2763b66
8 changed files with 232 additions and 124 deletions
+11 -10
View File
@@ -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 (