fix(api): address typing review feedback

This commit is contained in:
Yanli 盐粒 2026-03-18 19:16:48 +08:00
parent cc5aac268a
commit d014f0b91a
3 changed files with 15 additions and 11 deletions

View File

@ -520,9 +520,9 @@ class AdvancedChatAppGenerator(MessageBasedAppGenerator):
worker_thread.start()
# release database connection, because the following new thread operations may take a long time
with Session(bind=db.engine, expire_on_commit=False) as session:
workflow = _refresh_model(session, workflow)
message = _refresh_model(session, message)
with Session(bind=db.engine, expire_on_commit=False):
workflow = _refresh_model(workflow)
message = _refresh_model(message)
assert message is not None
# workflow_ = session.get(Workflow, workflow.id)
# assert workflow_ is not None
@ -691,16 +691,20 @@ class AdvancedChatAppGenerator(MessageBasedAppGenerator):
@overload
def _refresh_model(session: Session, model: Workflow) -> Workflow: ...
def _refresh_model(model: Workflow, session: Session | None = None) -> Workflow: ...
@overload
def _refresh_model(session: Session, model: Message) -> Message: ...
def _refresh_model(model: Message, session: Session | None = None) -> Message: ...
def _refresh_model(session: Session, model: Any) -> Any:
del session
with Session(bind=db.engine, expire_on_commit=False) as refresh_session:
def _refresh_model(model: Any, session: Session | None = None) -> Any:
if session is not None and hasattr(session, "get"):
refresh_session = session
else:
refresh_session = Session(bind=db.engine, expire_on_commit=False)
with refresh_session:
if isinstance(model, Workflow):
detached_workflow = refresh_session.get(Workflow, model.id)
assert detached_workflow is not None

View File

@ -57,7 +57,7 @@ class AdvancedChatAppGenerateResponseConverter(AppGenerateResponseConverter):
@classmethod
def convert_stream_full_response(
cls, stream_response: Iterator[AppStreamResponse]
) -> Generator[dict | str, Any, None]:
) -> Generator[dict | str, None, None]:
"""
Convert stream full response.
:param stream_response: stream response
@ -88,7 +88,7 @@ class AdvancedChatAppGenerateResponseConverter(AppGenerateResponseConverter):
@classmethod
def convert_stream_simple_response(
cls, stream_response: Iterator[AppStreamResponse]
) -> Generator[dict | str, Any, None]:
) -> Generator[dict | str, None, None]:
"""
Convert stream simple response.
:param stream_response: stream response

View File

@ -84,7 +84,7 @@ class LoopVariableData(BaseModel):
value_type = validation_info.data.get("value_type")
if value_type == "variable":
if value is None:
return None
raise ValueError("Variable loop inputs require a selector")
return _VARIABLE_SELECTOR_ADAPTER.validate_python(value)
if value_type == "constant":
return _validate_loop_value(value)