chore: 升级到 Python 3.14 并现代化代码

- 升级 Docker 基础镜像从 Python 3.12 到 3.14
- 更新 pyproject.toml 支持 Python 3.13/3.14
- 移除 Python 3.8/3.9/3.10/3.11 分类器
- 更新 black 和 mypy 配置目标版本
- 将 get_event_loop() 替换为 get_running_loop() 加上 RuntimeError 处理
- 简化 compute_cost_sync 中的 asyncio.run 使用
- Dict/List/Tuple/Set → dict/list/tuple/set (PEP 585)
- Optional[T] → T | None (PEP 604)
- Union[A, B] → A | B (PEP 604)
- 移除废弃的 typing 导入
- 移除不必要的字符串引号注解
This commit is contained in:
AAEE86
2026-01-30 03:10:21 +08:00
parent 3e75bc8964
commit 24d24f6829
255 changed files with 4062 additions and 4173 deletions

View File

@@ -3,7 +3,8 @@
"""
import time
from typing import Any, Generator, Optional, cast
from typing import Any, cast
from collections.abc import Generator
from starlette.requests import Request
from sqlalchemy import create_engine, event
@@ -17,8 +18,8 @@ from ..models.database import Base, SystemConfig, User, UserRole
# 延迟初始化的数据库引擎和会话工厂
_engine: Optional[Engine] = None
_SessionLocal: Optional[sessionmaker[Session]] = None
_engine: Engine | None = None
_SessionLocal: sessionmaker[Session] | None = None
# 连接池监控
_last_pool_warning: float = 0.0
@@ -161,7 +162,7 @@ def _log_pool_capacity() -> None:
)
def get_db(request: Request = None) -> Generator[Session, None, None]: # type: ignore[assignment]
def get_db(request: Request = None) -> Generator[Session]: # type: ignore[assignment]
"""获取数据库会话
事务策略说明