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

View File

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

View File

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