1010import logging
1111import os
1212from datetime import datetime , timezone
13+ from typing import Any
1314
14- from flask import Blueprint , jsonify , request
15+ from flask import Blueprint , Response , jsonify , request
1516
1617from api .flask_config import exclusion_rules
1718
@@ -55,14 +56,14 @@ def _request_nocache() -> bool:
5556
5657
5758@bp .route ("/api/workspaces" )
58- def list_workspaces ():
59+ def list_workspaces () -> tuple [ Response , int ] | Response :
5960 try :
6061 workspace_path = resolve_workspace_path ()
6162 rules = exclusion_rules ()
6263 projects , warnings = list_workspace_projects (
6364 workspace_path , rules , nocache = _request_nocache (),
6465 )
65- payload : dict = {"projects" : projects }
66+ payload : dict [ str , Any ] = {"projects" : projects }
6667 if warnings :
6768 payload ["warnings" ] = warnings
6869 return jsonify (payload )
@@ -76,7 +77,7 @@ def list_workspaces():
7677# ---------------------------------------------------------------------------
7778
7879@bp .route ("/api/workspaces/<workspace_id>" )
79- def get_workspace (workspace_id ) :
80+ def get_workspace (workspace_id : str ) -> tuple [ Response , int ] | Response :
8081 try :
8182 if workspace_id == "global" :
8283 return jsonify ({
@@ -154,7 +155,7 @@ def get_workspace(workspace_id):
154155# ---------------------------------------------------------------------------
155156
156157@bp .route ("/api/workspaces/<workspace_id>/tabs" )
157- def get_workspace_tabs (workspace_id ) :
158+ def get_workspace_tabs (workspace_id : str ) -> tuple [ Response , int ] | Response :
158159 if workspace_id .startswith ("cli:" ):
159160 try :
160161 return get_cli_workspace_tabs (workspace_id , exclusion_rules ())
@@ -182,7 +183,7 @@ def get_workspace_tabs(workspace_id):
182183# ---------------------------------------------------------------------------
183184
184185@bp .route ("/api/workspaces/<workspace_id>/tabs/<composer_id>" )
185- def get_workspace_tab (workspace_id , composer_id ) :
186+ def get_workspace_tab (workspace_id : str , composer_id : str ) -> tuple [ Response , int ] | Response :
186187 if workspace_id .startswith ("cli:" ):
187188 return jsonify ({"error" : "Per-tab lazy load is not supported for CLI workspaces" }), 400
188189 try :
0 commit comments