add a config to reducer, to enable custom ish reducers

This commit is contained in:
lda
2026-05-17 17:11:19 +07:00 Verified
parent 32bcba9b35
commit 9d45c59fdc
14 changed files with 238 additions and 38 deletions
+4 -2
View File
@@ -5,7 +5,7 @@ from typing import Any, Iterator
from pydantic import BaseModel, TypeAdapter
from wf_core import SchemaRef, StateField, StateSchema
from wf_core import ReducerRef, SchemaRef, StateField, StateSchema
SchemaLike = SchemaRef | type[BaseModel] | type[Any] | dict[str, Any]
StateSchemaLike = StateSchema | type[BaseModel] | type[Any] | dict[str, Any]
@@ -51,7 +51,9 @@ def state_schema_from(value: StateSchemaLike) -> StateSchema:
fields = {
path: StateField(
type=_state_field_type(property_schema),
reducer=metadata_by_name.get(path, StateFieldMetadata()).reducer,
reducer=ReducerRef(
name=metadata_by_name.get(path, StateFieldMetadata()).reducer
),
trace=metadata_by_name.get(path, StateFieldMetadata()).trace,
default=_state_field_default(value, path, property_schema),
)