Skip to content

Commit

Permalink
✨ support pydantic v2
Browse files Browse the repository at this point in the history
  • Loading branch information
CMHopeSunshine committed Feb 23, 2024
1 parent 07aee74 commit 659b72b
Show file tree
Hide file tree
Showing 7 changed files with 279 additions and 201 deletions.
10 changes: 5 additions & 5 deletions nonebot/adapters/discord/adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
from typing_extensions import override

from nonebot.adapters import Adapter as BaseAdapter
from nonebot.compat import type_validate_python
from nonebot.drivers import URL, Driver, ForwardDriver, Request, WebSocket
from nonebot.exception import WebSocketClosed
from nonebot.plugin import get_plugin_config
from nonebot.utils import escape_tag

from pydantic import parse_obj_as, parse_raw_as

from .api.handle import API_HANDLERS
from .api.model import GatewayBot, User
from .bot import Bot
Expand Down Expand Up @@ -40,7 +40,7 @@ class Adapter(BaseAdapter):
@override
def __init__(self, driver: Driver, **kwargs: Any):
super().__init__(driver, **kwargs)
self.discord_config: Config = Config(**self.config.dict())
self.discord_config: Config = get_plugin_config(Config)
self.tasks: List[asyncio.Task] = []
self.base_url: URL = URL(
f"https://discord.com/api/v{self.discord_config.discord_api_version}",
Expand Down Expand Up @@ -426,7 +426,7 @@ def get_authorization(bot_info: BotInfo) -> str:
async def receive_payload(self, ws: WebSocket) -> Payload:
data = await ws.receive()
data = decompress_data(data, self.discord_config.discord_compress)
return parse_raw_as(PayloadType, data)
return type_validate_python(PayloadType, json.loads(data))

@classmethod
def payload_to_event(cls, payload: Dispatch) -> Event:
Expand All @@ -439,7 +439,7 @@ def payload_to_event(cls, payload: Dispatch) -> Event:
event = Event.parse_obj(payload.data)
event.__type__ = payload.type # type: ignore
return event
return parse_obj_as(EventClass, payload.data)
return type_validate_python(EventClass, payload.data)

@override
async def _call_api(self, bot: Bot, api: str, **data: Any) -> Any:
Expand Down
Loading

0 comments on commit 659b72b

Please sign in to comment.