style: ruff自动格式化修复 - 修复180个空白行和格式问题

This commit is contained in:
Windpicker-owo
2025-11-01 17:06:40 +08:00
parent ece6a70c65
commit cabaf74194
4 changed files with 173 additions and 179 deletions

View File

@@ -6,11 +6,9 @@
- 智能预加载:关联数据自动预加载 - 智能预加载:关联数据自动预加载
""" """
from typing import Any, Optional, Type, TypeVar from typing import Any, TypeVar
from sqlalchemy import and_, delete, func, select, update from sqlalchemy import delete, func, select, update
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.inspection import inspect
from src.common.database.core.models import Base from src.common.database.core.models import Base
from src.common.database.core.session import get_db_session from src.common.database.core.session import get_db_session
@@ -19,7 +17,6 @@ from src.common.database.optimization import (
Priority, Priority,
get_batch_scheduler, get_batch_scheduler,
get_cache, get_cache,
get_preloader,
) )
from src.common.logger import get_logger from src.common.logger import get_logger
@@ -47,7 +44,7 @@ def _model_to_dict(instance: Base) -> dict[str, Any]:
return result return result
def _dict_to_model(model_class: Type[T], data: dict[str, Any]) -> T: def _dict_to_model(model_class: type[T], data: dict[str, Any]) -> T:
"""从字典创建 SQLAlchemy 模型实例 (detached状态) """从字典创建 SQLAlchemy 模型实例 (detached状态)
Args: Args:
@@ -70,7 +67,7 @@ class CRUDBase:
提供通用的增删改查操作,自动集成缓存和批处理 提供通用的增删改查操作,自动集成缓存和批处理
""" """
def __init__(self, model: Type[T]): def __init__(self, model: type[T]):
"""初始化CRUD操作 """初始化CRUD操作
Args: Args:
@@ -83,7 +80,7 @@ class CRUDBase:
self, self,
id: int, id: int,
use_cache: bool = True, use_cache: bool = True,
) -> Optional[T]: ) -> T | None:
"""根据ID获取单条记录 """根据ID获取单条记录
Args: Args:
@@ -130,7 +127,7 @@ class CRUDBase:
self, self,
use_cache: bool = True, use_cache: bool = True,
**filters: Any, **filters: Any,
) -> Optional[T]: ) -> T | None:
"""根据条件获取单条记录 """根据条件获取单条记录
Args: Args:
@@ -140,7 +137,7 @@ class CRUDBase:
Returns: Returns:
模型实例或None 模型实例或None
""" """
cache_key = f"{self.model_name}:filter:{str(sorted(filters.items()))}" cache_key = f"{self.model_name}:filter:{sorted(filters.items())!s}"
# 尝试从缓存获取 (缓存的是字典) # 尝试从缓存获取 (缓存的是字典)
if use_cache: if use_cache:
@@ -196,7 +193,7 @@ class CRUDBase:
Returns: Returns:
模型实例列表 模型实例列表
""" """
cache_key = f"{self.model_name}:multi:{skip}:{limit}:{str(sorted(filters.items()))}" cache_key = f"{self.model_name}:multi:{skip}:{limit}:{sorted(filters.items())!s}"
# 尝试从缓存获取 (缓存的是字典列表) # 尝试从缓存获取 (缓存的是字典列表)
if use_cache: if use_cache:
@@ -284,7 +281,7 @@ class CRUDBase:
id: int, id: int,
obj_in: dict[str, Any], obj_in: dict[str, Any],
use_batch: bool = False, use_batch: bool = False,
) -> Optional[T]: ) -> T | None:
"""更新记录 """更新记录
Args: Args:
@@ -424,7 +421,7 @@ class CRUDBase:
async def get_or_create( async def get_or_create(
self, self,
defaults: Optional[dict[str, Any]] = None, defaults: dict[str, Any] | None = None,
**filters: Any, **filters: Any,
) -> tuple[T, bool]: ) -> tuple[T, bool]:
"""获取或创建记录 """获取或创建记录

View File

@@ -7,19 +7,16 @@
- 关联查询 - 关联查询
""" """
from typing import Any, Generic, Optional, Sequence, Type, TypeVar from typing import Any, Generic, TypeVar
from sqlalchemy import and_, asc, desc, func, or_, select from sqlalchemy import and_, asc, desc, func, or_, select
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.engine import Row
from src.common.database.core.models import Base
from src.common.database.core.session import get_db_session
from src.common.database.optimization import get_cache, get_preloader
from src.common.logger import get_logger
# 导入 CRUD 辅助函数以避免重复定义 # 导入 CRUD 辅助函数以避免重复定义
from src.common.database.api.crud import _dict_to_model, _model_to_dict from src.common.database.api.crud import _dict_to_model, _model_to_dict
from src.common.database.core.models import Base
from src.common.database.core.session import get_db_session
from src.common.database.optimization import get_cache
from src.common.logger import get_logger
logger = get_logger("database.query") logger = get_logger("database.query")
@@ -32,7 +29,7 @@ class QueryBuilder(Generic[T]):
支持链式调用,构建复杂查询 支持链式调用,构建复杂查询
""" """
def __init__(self, model: Type[T]): def __init__(self, model: type[T]):
"""初始化查询构建器 """初始化查询构建器
Args: Args:
@@ -106,7 +103,7 @@ class QueryBuilder(Generic[T]):
logger.warning(f"未知操作符: {operator}") logger.warning(f"未知操作符: {operator}")
# 更新缓存键 # 更新缓存键
self._cache_key_parts.append(f"filter:{str(sorted(conditions.items()))}") self._cache_key_parts.append(f"filter:{sorted(conditions.items())!s}")
return self return self
def filter_or(self, **conditions: Any) -> "QueryBuilder": def filter_or(self, **conditions: Any) -> "QueryBuilder":
@@ -126,7 +123,7 @@ class QueryBuilder(Generic[T]):
if or_conditions: if or_conditions:
self._stmt = self._stmt.where(or_(*or_conditions)) self._stmt = self._stmt.where(or_(*or_conditions))
self._cache_key_parts.append(f"or:{str(sorted(conditions.items()))}") self._cache_key_parts.append(f"or:{sorted(conditions.items())!s}")
return self return self
@@ -224,7 +221,7 @@ class QueryBuilder(Generic[T]):
return instances return instances
async def first(self) -> Optional[T]: async def first(self) -> T | None:
"""获取第一个结果 """获取第一个结果
Returns: Returns:
@@ -337,7 +334,7 @@ class AggregateQuery:
提供聚合操作如sum、avg、max、min等 提供聚合操作如sum、avg、max、min等
""" """
def __init__(self, model: Type[T]): def __init__(self, model: type[T]):
"""初始化聚合查询 """初始化聚合查询
Args: Args:

View File

@@ -9,9 +9,9 @@ import orjson
from json_repair import repair_json from json_repair import repair_json
from sqlalchemy import select from sqlalchemy import select
from src.common.database.api.crud import CRUDBase
from src.common.database.compatibility import get_db_session from src.common.database.compatibility import get_db_session
from src.common.database.core.models import PersonInfo from src.common.database.core.models import PersonInfo
from src.common.database.api.crud import CRUDBase
from src.common.database.utils.decorators import cached from src.common.database.utils.decorators import cached
from src.common.logger import get_logger from src.common.logger import get_logger
from src.config.config import global_config, model_config from src.config.config import global_config, model_config
@@ -339,7 +339,7 @@ class PersonInfoManager:
logger.error(f"数据库操作异常,耗时 {total_time:.3f}秒: {e}") logger.error(f"数据库操作异常,耗时 {total_time:.3f}秒: {e}")
raise raise
found, needs_creation = await _db_update_async(person_id, field_name, processed_value) _found, needs_creation = await _db_update_async(person_id, field_name, processed_value)
if needs_creation: if needs_creation:
logger.info(f"{person_id} 不存在,将新建。") logger.info(f"{person_id} 不存在,将新建。")
@@ -658,7 +658,7 @@ class PersonInfoManager:
try: try:
value = getattr(record, f_name, None) value = getattr(record, f_name, None)
if value is not None and way(value): if value is not None and way(value):
person_id_value = getattr(record, 'person_id', None) person_id_value = getattr(record, "person_id", None)
if person_id_value: if person_id_value:
found_results[person_id_value] = value found_results[person_id_value] = value
except Exception as e: except Exception as e:
@@ -736,7 +736,7 @@ class PersonInfoManager:
model_fields = [column.name for column in PersonInfo.__table__.columns] model_fields = [column.name for column in PersonInfo.__table__.columns]
filtered_initial_data = {k: v for k, v in initial_data.items() if v is not None and k in model_fields} filtered_initial_data = {k: v for k, v in initial_data.items() if v is not None and k in model_fields}
record, was_created = await _db_get_or_create_async(person_id, filtered_initial_data) _record, was_created = await _db_get_or_create_async(person_id, filtered_initial_data)
if was_created: if was_created:
logger.info(f"用户 {platform}:{user_id} (person_id: {person_id}) 不存在,将创建新记录。") logger.info(f"用户 {platform}:{user_id} (person_id: {person_id}) 不存在,将创建新记录。")