🚨 fix Incompatible overrides

This commit is contained in:
2023-11-22 15:57:04 +08:00
parent 7cdb0f3547
commit c0fa92df30
2 changed files with 13 additions and 7 deletions

View File

@@ -1,4 +1,5 @@
from datetime import datetime
from typing import Any
from nonebot.adapters import Message
from nonebot_plugin_orm import Model
@@ -13,13 +14,17 @@ from ..utils.typing import CommandType, GameType
class PydanticType(TypeDecorator):
impl = JSON
def process_bind_param(self, value: BaseModel, dialect: Dialect) -> str:
def process_bind_param(self, value: Any | None, dialect: Dialect) -> str: # noqa: ANN401
# 将 Pydantic 模型实例转换为 JSON
return value.json()
if isinstance(value, BaseModel):
return value.json()
raise TypeError
def process_result_value(self, value: str, dialect: Dialect) -> BaseModel:
def process_result_value(self, value: Any | None, dialect: Dialect) -> BaseModel: # noqa: ANN401
# 将 JSON 转换回 Pydantic 模型实例
return BaseModel.parse_raw(value)
if isinstance(value, str | bytes):
return BaseModel.parse_raw(value)
raise TypeError
class Bind(MappedAsDataclass, Model):

View File

@@ -1,5 +1,4 @@
from abc import ABC, abstractmethod
from typing import Self
from pydantic import BaseModel
@@ -7,8 +6,10 @@ from pydantic import BaseModel
class BaseUser(ABC, BaseModel):
"""游戏用户"""
def __eq__(self, __value: Self) -> bool:
return self.unique_identifier == __value.unique_identifier
def __eq__(self, __value: object) -> bool:
if isinstance(__value, BaseUser):
return self.unique_identifier == __value.unique_identifier
return False
@property
@abstractmethod