fix pylance problems

This commit is contained in:
Von committed 2026-04-06 13:00:31 +08:00
1 parent bd7552f23b
commit c744bc0bc3
26 files changed
+405 -251

No files matched your search

+51 -34
View File
@@ -2,7 +2,10 @@
# -*- coding: utf-8 -*-
"""Provider 管理 API。"""
from flask import Response, jsonify, request
from typing import Any
from flask import jsonify, request
from flask.typing import ResponseReturnValue
from ..application.app_context import AppContext
from ..services import (
@@ -16,7 +19,7 @@ from .decorators import require_authentication
class ProviderController:
"""处理 provider 配置的增删改查、模型拉取与配置开关更新。"""
"""处理 provider 配置、认证分组与相关管理 API。"""
def __init__(
self,
@@ -36,6 +39,19 @@ class ProviderController:
self._auth_service = auth_service
self._register_routes()
@staticmethod
def _get_request_payload() -> dict[str, Any]:
payload = request.get_json(silent=True)
if isinstance(payload, dict):
return dict(payload)
return {}
@staticmethod
def _coerce_name_list(value: Any) -> list[str]:
if not isinstance(value, list):
raise ValueError('Provider names must be a non-empty list')
return [str(item) for item in value]
def _register_routes(self) -> None:
auth = require_authentication(self._auth_service)
@@ -75,14 +91,14 @@ class ProviderController:
auth(self.restore_auth_group_entry)
)
def get_providers(self) -> Response:
def get_providers(self) -> ResponseReturnValue:
try:
return jsonify(self._provider_service.list_providers())
except Exception as exc:
self._logger.error('Error getting providers: %s', exc)
return jsonify({'error': str(exc)}), 500
def get_provider(self, name: str) -> Response:
def get_provider(self, name: str) -> ResponseReturnValue:
try:
provider = self._provider_service.get_provider(name)
if provider is None:
@@ -92,9 +108,9 @@ class ProviderController:
self._logger.error('Error getting provider: %s', exc)
return jsonify({'error': str(exc)}), 500
def create_provider(self) -> Response:
def create_provider(self) -> ResponseReturnValue:
try:
payload = request.get_json(silent=True) or {}
payload = self._get_request_payload()
provider = self._provider_service.create_provider(payload)
self._logger.info('Provider created: %s', provider.get('name'))
return jsonify(provider), 201
@@ -104,9 +120,9 @@ class ProviderController:
self._logger.error('Error creating provider: %s', exc)
return jsonify({'error': str(exc)}), 500
def update_provider(self, name: str) -> Response:
def update_provider(self, name: str) -> ResponseReturnValue:
try:
payload = request.get_json(silent=True) or {}
payload = self._get_request_payload()
provider = self._provider_service.update_provider(name, payload)
self._logger.info('Provider updated: %s -> %s', name, provider.get('name'))
return jsonify(provider)
@@ -118,7 +134,7 @@ class ProviderController:
self._logger.error('Error updating provider: %s', exc)
return jsonify({'error': str(exc)}), 500
def delete_provider(self, name: str) -> Response:
def delete_provider(self, name: str) -> ResponseReturnValue:
try:
self._provider_service.delete_provider(name)
self._logger.info('Provider deleted: %s', name)
@@ -131,7 +147,7 @@ class ProviderController:
self._logger.error('Error deleting provider: %s', exc)
return jsonify({'error': str(exc)}), 500
def disable_provider(self, name: str) -> Response:
def disable_provider(self, name: str) -> ResponseReturnValue:
try:
provider = self._provider_service.set_provider_enabled(name, enabled=False)
self._logger.info('Provider disabled: %s', name)
@@ -144,7 +160,7 @@ class ProviderController:
self._logger.error('Error disabling provider: %s', exc)
return jsonify({'error': str(exc)}), 500
def enable_provider(self, name: str) -> Response:
def enable_provider(self, name: str) -> ResponseReturnValue:
try:
provider = self._provider_service.set_provider_enabled(name, enabled=True)
self._logger.info('Provider enabled: %s', name)
@@ -157,11 +173,11 @@ class ProviderController:
self._logger.error('Error enabling provider: %s', exc)
return jsonify({'error': str(exc)}), 500
def batch_providers(self) -> Response:
def batch_providers(self) -> ResponseReturnValue:
try:
payload = request.get_json(silent=True) or {}
payload = self._get_request_payload()
action = str(payload.get('action') or '').strip().lower()
names = payload.get('names')
names = self._coerce_name_list(payload.get('names'))
if action == 'enable':
result = self._provider_service.batch_set_provider_enabled(names, enabled=True)
elif action == 'disable':
@@ -181,14 +197,14 @@ class ProviderController:
self._logger.error('Error applying provider batch action: %s', exc)
return jsonify({'error': str(exc)}), 500
def get_auth_groups(self) -> Response:
def get_auth_groups(self) -> ResponseReturnValue:
try:
return jsonify(self._auth_group_service.list_auth_groups())
except Exception as exc:
self._logger.error('Error getting auth groups: %s', exc)
return jsonify({'error': str(exc)}), 500
def get_auth_group(self, name: str) -> Response:
def get_auth_group(self, name: str) -> ResponseReturnValue:
try:
auth_group = self._auth_group_service.get_auth_group(name)
if auth_group is None:
@@ -198,9 +214,9 @@ class ProviderController:
self._logger.error('Error getting auth group: %s', exc)
return jsonify({'error': str(exc)}), 500
def create_auth_group(self) -> Response:
def create_auth_group(self) -> ResponseReturnValue:
try:
payload = request.get_json(silent=True) or {}
payload = self._get_request_payload()
auth_group = self._auth_group_service.create_auth_group(payload)
self._logger.info('Auth group created: %s', auth_group.get('name'))
return jsonify(auth_group), 201
@@ -210,10 +226,11 @@ class ProviderController:
self._logger.error('Error creating auth group: %s', exc)
return jsonify({'error': str(exc)}), 500
def import_auth_group_entries(self) -> Response:
def import_auth_group_entries(self) -> ResponseReturnValue:
try:
payload = request.get_json(silent=True) or {}
entries = self._auth_group_service.import_auth_entries(payload.get('yaml', ''))
payload = self._get_request_payload()
yaml_text = str(payload.get('yaml', '') or '')
entries = self._auth_group_service.import_auth_entries(yaml_text)
return jsonify({'entries': entries})
except ValueError as exc:
return jsonify({'error': str(exc)}), 400
@@ -221,9 +238,9 @@ class ProviderController:
self._logger.error('Error importing auth group entries: %s', exc)
return jsonify({'error': str(exc)}), 500
def update_auth_group(self, name: str) -> Response:
def update_auth_group(self, name: str) -> ResponseReturnValue:
try:
payload = request.get_json(silent=True) or {}
payload = self._get_request_payload()
auth_group = self._auth_group_service.update_auth_group(name, payload)
self._logger.info('Auth group updated: %s -> %s', name, auth_group.get('name'))
return jsonify(auth_group)
@@ -235,7 +252,7 @@ class ProviderController:
self._logger.error('Error updating auth group: %s', exc)
return jsonify({'error': str(exc)}), 500
def delete_auth_group(self, name: str) -> Response:
def delete_auth_group(self, name: str) -> ResponseReturnValue:
try:
self._auth_group_service.delete_auth_group(name)
self._logger.info('Auth group deleted: %s', name)
@@ -248,7 +265,7 @@ class ProviderController:
self._logger.error('Error deleting auth group: %s', exc)
return jsonify({'error': str(exc)}), 500
def get_auth_group_runtime(self, name: str) -> Response:
def get_auth_group_runtime(self, name: str) -> ResponseReturnValue:
try:
return jsonify(self._auth_group_service.get_auth_group_runtime(name))
except ValueError as exc:
@@ -257,7 +274,7 @@ class ProviderController:
self._logger.error('Error getting auth group runtime: %s', exc)
return jsonify({'error': str(exc)}), 500
def clear_auth_group_entry_cooldown(self, name: str, entry_id: str) -> Response:
def clear_auth_group_entry_cooldown(self, name: str, entry_id: str) -> ResponseReturnValue:
try:
self._auth_group_service.clear_entry_cooldown(name, entry_id)
self._logger.info('Auth group entry cooldown cleared: %s/%s', name, entry_id)
@@ -270,7 +287,7 @@ class ProviderController:
self._logger.error('Error clearing auth group entry cooldown: %s', exc)
return jsonify({'error': str(exc)}), 500
def disable_auth_group_entry(self, name: str, entry_id: str) -> Response:
def disable_auth_group_entry(self, name: str, entry_id: str) -> ResponseReturnValue:
try:
self._auth_group_service.set_entry_disabled(name, entry_id, disabled=True)
self._logger.info('Auth group entry disabled: %s/%s', name, entry_id)
@@ -283,7 +300,7 @@ class ProviderController:
self._logger.error('Error disabling auth group entry: %s', exc)
return jsonify({'error': str(exc)}), 500
def enable_auth_group_entry(self, name: str, entry_id: str) -> Response:
def enable_auth_group_entry(self, name: str, entry_id: str) -> ResponseReturnValue:
try:
self._auth_group_service.set_entry_disabled(name, entry_id, disabled=False)
self._logger.info('Auth group entry enabled: %s/%s', name, entry_id)
@@ -296,7 +313,7 @@ class ProviderController:
self._logger.error('Error enabling auth group entry: %s', exc)
return jsonify({'error': str(exc)}), 500
def reset_auth_group_entry_minute_usage(self, name: str, entry_id: str) -> Response:
def reset_auth_group_entry_minute_usage(self, name: str, entry_id: str) -> ResponseReturnValue:
try:
self._auth_group_service.reset_entry_minute_usage(name, entry_id)
self._logger.info('Auth group entry minute usage reset: %s/%s', name, entry_id)
@@ -309,7 +326,7 @@ class ProviderController:
self._logger.error('Error resetting auth group entry minute usage: %s', exc)
return jsonify({'error': str(exc)}), 500
def reset_auth_group_entry_runtime(self, name: str, entry_id: str) -> Response:
def reset_auth_group_entry_runtime(self, name: str, entry_id: str) -> ResponseReturnValue:
try:
self._auth_group_service.reset_entry_runtime(name, entry_id)
self._logger.info('Auth group entry runtime reset: %s/%s', name, entry_id)
@@ -322,7 +339,7 @@ class ProviderController:
self._logger.error('Error resetting auth group entry runtime: %s', exc)
return jsonify({'error': str(exc)}), 500
def restore_auth_group_entry(self, name: str, entry_id: str) -> Response:
def restore_auth_group_entry(self, name: str, entry_id: str) -> ResponseReturnValue:
try:
self._auth_group_service.restore_entry(name, entry_id)
self._logger.info('Auth group entry restored: %s/%s', name, entry_id)
@@ -335,7 +352,7 @@ class ProviderController:
self._logger.error('Error restoring auth group entry: %s', exc)
return jsonify({'error': str(exc)}), 500
def fetch_models(self) -> Response:
def fetch_models(self) -> ResponseReturnValue:
try:
result = self._model_discovery_service.fetch_models_preview(
api=request.args.get('api', ''),
@@ -356,9 +373,9 @@ class ProviderController:
self._logger.error('Error fetching provider models: %s', exc)
return jsonify({'error': str(exc)}), 500
def update_chat_whitelist(self) -> Response:
def update_chat_whitelist(self) -> ResponseReturnValue:
try:
payload = request.get_json(silent=True) or {}
payload = self._get_request_payload()
enabled = self._settings_service.update_chat_whitelist_enabled(payload.get('enabled'))
self._logger.info('Chat whitelist updated: enabled=%s', enabled)
return jsonify({'enabled': enabled})