style: ruff自动格式化修复 - 修复180个空白行和格式问题
This commit is contained in:
@@ -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.ext.asyncio import AsyncSession
|
||||
from sqlalchemy.inspection import inspect
|
||||
from sqlalchemy import delete, func, select, update
|
||||
|
||||
from src.common.database.core.models import Base
|
||||
from src.common.database.core.session import get_db_session
|
||||
@@ -19,7 +17,6 @@ from src.common.database.optimization import (
|
||||
Priority,
|
||||
get_batch_scheduler,
|
||||
get_cache,
|
||||
get_preloader,
|
||||
)
|
||||
from src.common.logger import get_logger
|
||||
|
||||
@@ -47,7 +44,7 @@ def _model_to_dict(instance: Base) -> dict[str, Any]:
|
||||
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状态)
|
||||
|
||||
Args:
|
||||
@@ -70,7 +67,7 @@ class CRUDBase:
|
||||
提供通用的增删改查操作,自动集成缓存和批处理
|
||||
"""
|
||||
|
||||
def __init__(self, model: Type[T]):
|
||||
def __init__(self, model: type[T]):
|
||||
"""初始化CRUD操作
|
||||
|
||||
Args:
|
||||
@@ -83,7 +80,7 @@ class CRUDBase:
|
||||
self,
|
||||
id: int,
|
||||
use_cache: bool = True,
|
||||
) -> Optional[T]:
|
||||
) -> T | None:
|
||||
"""根据ID获取单条记录
|
||||
|
||||
Args:
|
||||
@@ -130,7 +127,7 @@ class CRUDBase:
|
||||
self,
|
||||
use_cache: bool = True,
|
||||
**filters: Any,
|
||||
) -> Optional[T]:
|
||||
) -> T | None:
|
||||
"""根据条件获取单条记录
|
||||
|
||||
Args:
|
||||
@@ -140,7 +137,7 @@ class CRUDBase:
|
||||
Returns:
|
||||
模型实例或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:
|
||||
@@ -196,7 +193,7 @@ class CRUDBase:
|
||||
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:
|
||||
@@ -284,7 +281,7 @@ class CRUDBase:
|
||||
id: int,
|
||||
obj_in: dict[str, Any],
|
||||
use_batch: bool = False,
|
||||
) -> Optional[T]:
|
||||
) -> T | None:
|
||||
"""更新记录
|
||||
|
||||
Args:
|
||||
@@ -424,7 +421,7 @@ class CRUDBase:
|
||||
|
||||
async def get_or_create(
|
||||
self,
|
||||
defaults: Optional[dict[str, Any]] = None,
|
||||
defaults: dict[str, Any] | None = None,
|
||||
**filters: Any,
|
||||
) -> tuple[T, bool]:
|
||||
"""获取或创建记录
|
||||
|
||||
@@ -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.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 辅助函数以避免重复定义
|
||||
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")
|
||||
|
||||
@@ -32,7 +29,7 @@ class QueryBuilder(Generic[T]):
|
||||
支持链式调用,构建复杂查询
|
||||
"""
|
||||
|
||||
def __init__(self, model: Type[T]):
|
||||
def __init__(self, model: type[T]):
|
||||
"""初始化查询构建器
|
||||
|
||||
Args:
|
||||
@@ -106,7 +103,7 @@ class QueryBuilder(Generic[T]):
|
||||
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
|
||||
|
||||
def filter_or(self, **conditions: Any) -> "QueryBuilder":
|
||||
@@ -126,7 +123,7 @@ class QueryBuilder(Generic[T]):
|
||||
|
||||
if 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
|
||||
|
||||
@@ -224,7 +221,7 @@ class QueryBuilder(Generic[T]):
|
||||
|
||||
return instances
|
||||
|
||||
async def first(self) -> Optional[T]:
|
||||
async def first(self) -> T | None:
|
||||
"""获取第一个结果
|
||||
|
||||
Returns:
|
||||
@@ -337,7 +334,7 @@ class AggregateQuery:
|
||||
提供聚合操作如sum、avg、max、min等
|
||||
"""
|
||||
|
||||
def __init__(self, model: Type[T]):
|
||||
def __init__(self, model: type[T]):
|
||||
"""初始化聚合查询
|
||||
|
||||
Args:
|
||||
|
||||
@@ -9,9 +9,9 @@ import orjson
|
||||
from json_repair import repair_json
|
||||
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.core.models import PersonInfo
|
||||
from src.common.database.api.crud import CRUDBase
|
||||
from src.common.database.utils.decorators import cached
|
||||
from src.common.logger import get_logger
|
||||
from src.config.config import global_config, model_config
|
||||
@@ -669,7 +669,7 @@ class PersonInfoManager:
|
||||
logger.error(f"数据库操作异常,耗时 {total_time:.3f}秒: {e}")
|
||||
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:
|
||||
logger.info(f"{person_id} 不存在,将新建。")
|
||||
@@ -992,7 +992,7 @@ class PersonInfoManager:
|
||||
try:
|
||||
value = getattr(record, f_name, None)
|
||||
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:
|
||||
found_results[person_id_value] = value
|
||||
except Exception as e:
|
||||
@@ -1070,7 +1070,7 @@ class PersonInfoManager:
|
||||
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}
|
||||
|
||||
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:
|
||||
logger.info(f"用户 {platform}:{user_id} (person_id: {person_id}) 不存在,将创建新记录。")
|
||||
|
||||
Reference in New Issue
Block a user