mirror of
https://github.com/nonebot/nonebot2.git
synced 2025-07-28 00:31:14 +00:00
✨ Add message template formatter
ref: https://github.com/nonebot/discussions/discussions/27
This commit is contained in:
@ -8,19 +8,21 @@
|
||||
import abc
|
||||
import asyncio
|
||||
from copy import deepcopy
|
||||
from dataclasses import asdict, dataclass, field
|
||||
from functools import partial
|
||||
from typing_extensions import Protocol
|
||||
from dataclasses import dataclass, field, asdict
|
||||
from typing import (Any, Set, List, Dict, Type, Tuple, Union, TypeVar, Mapping,
|
||||
Generic, Optional, Iterable)
|
||||
from typing import (Any, Dict, Generic, Iterable, List, Mapping, Optional, Set,
|
||||
Tuple, Type, TypeVar, Union)
|
||||
|
||||
from pydantic import BaseModel
|
||||
from typing_extensions import Protocol
|
||||
|
||||
from nonebot.log import logger
|
||||
from nonebot.config import Config
|
||||
from nonebot.utils import DataclassEncoder
|
||||
from nonebot.drivers import Driver, HTTPConnection, HTTPResponse
|
||||
from nonebot.typing import T_CallingAPIHook, T_CalledAPIHook
|
||||
from nonebot.log import logger
|
||||
from nonebot.typing import T_CalledAPIHook, T_CallingAPIHook
|
||||
from nonebot.utils import DataclassEncoder
|
||||
|
||||
from ._formatter import MessageFormatter
|
||||
|
||||
|
||||
class _ApiCall(Protocol):
|
||||
@ -329,6 +331,10 @@ class Message(List[TMS], abc.ABC):
|
||||
else:
|
||||
self.extend(self._construct(message))
|
||||
|
||||
@classmethod
|
||||
def template(cls: Type[TM], format_string: str) -> MessageFormatter[TM]:
|
||||
return MessageFormatter(cls, format_string)
|
||||
|
||||
@classmethod
|
||||
@abc.abstractmethod
|
||||
def get_segment_class(cls) -> Type[TMS]:
|
||||
|
Reference in New Issue
Block a user