mirror of
				https://github.com/nonebot/nonebot2.git
				synced 2025-10-30 22:46:40 +00:00 
			
		
		
		
	💥 Remove: 移除 Python 3.8 支持 (#2641)
This commit is contained in:
		| @@ -1,18 +1,5 @@ | ||||
| from typing import ( | ||||
|     TYPE_CHECKING, | ||||
|     List, | ||||
|     Type, | ||||
|     Tuple, | ||||
|     Union, | ||||
|     TypeVar, | ||||
|     Iterator, | ||||
|     KeysView, | ||||
|     Optional, | ||||
|     ItemsView, | ||||
|     ValuesView, | ||||
|     MutableMapping, | ||||
|     overload, | ||||
| ) | ||||
| from typing import TYPE_CHECKING, Union, TypeVar, Optional, overload | ||||
| from collections.abc import Iterator, KeysView, ItemsView, ValuesView, MutableMapping | ||||
|  | ||||
| from .provider import DEFAULT_PROVIDER_CLASS, MatcherProvider | ||||
|  | ||||
| @@ -22,7 +9,7 @@ if TYPE_CHECKING: | ||||
| T = TypeVar("T") | ||||
|  | ||||
|  | ||||
| class MatcherManager(MutableMapping[int, List[Type["Matcher"]]]): | ||||
| class MatcherManager(MutableMapping[int, list[type["Matcher"]]]): | ||||
|     """事件响应器管理器 | ||||
|  | ||||
|     实现了常用字典操作,用于管理事件响应器。 | ||||
| @@ -43,10 +30,10 @@ class MatcherManager(MutableMapping[int, List[Type["Matcher"]]]): | ||||
|     def __len__(self) -> int: | ||||
|         return len(self.provider) | ||||
|  | ||||
|     def __getitem__(self, key: int) -> List[Type["Matcher"]]: | ||||
|     def __getitem__(self, key: int) -> list[type["Matcher"]]: | ||||
|         return self.provider[key] | ||||
|  | ||||
|     def __setitem__(self, key: int, value: List[Type["Matcher"]]) -> None: | ||||
|     def __setitem__(self, key: int, value: list[type["Matcher"]]) -> None: | ||||
|         self.provider[key] = value | ||||
|  | ||||
|     def __delitem__(self, key: int) -> None: | ||||
| @@ -58,41 +45,45 @@ class MatcherManager(MutableMapping[int, List[Type["Matcher"]]]): | ||||
|     def keys(self) -> KeysView[int]: | ||||
|         return self.provider.keys() | ||||
|  | ||||
|     def values(self) -> ValuesView[List[Type["Matcher"]]]: | ||||
|     def values(self) -> ValuesView[list[type["Matcher"]]]: | ||||
|         return self.provider.values() | ||||
|  | ||||
|     def items(self) -> ItemsView[int, List[Type["Matcher"]]]: | ||||
|     def items(self) -> ItemsView[int, list[type["Matcher"]]]: | ||||
|         return self.provider.items() | ||||
|  | ||||
|     @overload | ||||
|     def get(self, key: int) -> Optional[List[Type["Matcher"]]]: ... | ||||
|     def get(self, key: int) -> Optional[list[type["Matcher"]]]: ... | ||||
|  | ||||
|     @overload | ||||
|     def get(self, key: int, default: T) -> Union[List[Type["Matcher"]], T]: ... | ||||
|     def get(self, key: int, default: T) -> Union[list[type["Matcher"]], T]: ... | ||||
|  | ||||
|     def get( | ||||
|         self, key: int, default: Optional[T] = None | ||||
|     ) -> Optional[Union[List[Type["Matcher"]], T]]: | ||||
|     ) -> Optional[Union[list[type["Matcher"]], T]]: | ||||
|         return self.provider.get(key, default) | ||||
|  | ||||
|     def pop(self, key: int) -> List[Type["Matcher"]]: | ||||
|     def pop(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, key: int | ||||
|     ) -> list[type["Matcher"]]: | ||||
|         return self.provider.pop(key) | ||||
|  | ||||
|     def popitem(self) -> Tuple[int, List[Type["Matcher"]]]: | ||||
|     def popitem(self) -> tuple[int, list[type["Matcher"]]]: | ||||
|         return self.provider.popitem() | ||||
|  | ||||
|     def clear(self) -> None: | ||||
|         self.provider.clear() | ||||
|  | ||||
|     def update(self, __m: MutableMapping[int, List[Type["Matcher"]]]) -> None: | ||||
|     def update(  # pyright: ignore[reportIncompatibleMethodOverride] | ||||
|         self, __m: MutableMapping[int, list[type["Matcher"]]] | ||||
|     ) -> None: | ||||
|         self.provider.update(__m) | ||||
|  | ||||
|     def setdefault( | ||||
|         self, key: int, default: List[Type["Matcher"]] | ||||
|     ) -> List[Type["Matcher"]]: | ||||
|         self, key: int, default: list[type["Matcher"]] | ||||
|     ) -> list[type["Matcher"]]: | ||||
|         return self.provider.setdefault(key, default) | ||||
|  | ||||
|     def set_provider(self, provider_class: Type[MatcherProvider]) -> None: | ||||
|     def set_provider(self, provider_class: type[MatcherProvider]) -> None: | ||||
|         """设置事件响应器存储器 | ||||
|  | ||||
|         参数: | ||||
|   | ||||
| @@ -6,19 +6,17 @@ from types import ModuleType | ||||
| from dataclasses import dataclass | ||||
| from contextvars import ContextVar | ||||
| from typing_extensions import Self | ||||
| from collections.abc import Iterable | ||||
| from datetime import datetime, timedelta | ||||
| from contextlib import AsyncExitStack, contextmanager | ||||
| from typing import ( | ||||
| from typing import (  # noqa: UP035 | ||||
|     TYPE_CHECKING, | ||||
|     Any, | ||||
|     List, | ||||
|     Type, | ||||
|     Tuple, | ||||
|     Union, | ||||
|     TypeVar, | ||||
|     Callable, | ||||
|     ClassVar, | ||||
|     Iterable, | ||||
|     NoReturn, | ||||
|     Optional, | ||||
|     overload, | ||||
| @@ -141,7 +139,7 @@ class Matcher(metaclass=MatcherMeta): | ||||
|     """事件响应器匹配规则""" | ||||
|     permission: ClassVar[Permission] = Permission() | ||||
|     """事件响应器触发权限""" | ||||
|     handlers: ClassVar[List[Dependent[Any]]] = [] | ||||
|     handlers: ClassVar[list[Dependent[Any]]] = [] | ||||
|     """事件响应器拥有的事件处理函数列表""" | ||||
|     priority: ClassVar[int] = 1 | ||||
|     """事件响应器优先级""" | ||||
| @@ -160,7 +158,7 @@ class Matcher(metaclass=MatcherMeta): | ||||
|     _default_permission_updater: ClassVar[Optional[Dependent[Permission]]] = None | ||||
|     """事件响应器权限更新函数""" | ||||
|  | ||||
|     HANDLER_PARAM_TYPES: ClassVar[Tuple[Type[Param], ...]] = ( | ||||
|     HANDLER_PARAM_TYPES: ClassVar[tuple[Type[Param], ...]] = (  # noqa: UP006 | ||||
|         DependParam, | ||||
|         BotParam, | ||||
|         EventParam, | ||||
| @@ -171,7 +169,7 @@ class Matcher(metaclass=MatcherMeta): | ||||
|     ) | ||||
|  | ||||
|     def __init__(self): | ||||
|         self.remain_handlers: List[Dependent[Any]] = self.handlers.copy() | ||||
|         self.remain_handlers: list[Dependent[Any]] = self.handlers.copy() | ||||
|         self.state = self._default_state.copy() | ||||
|  | ||||
|     def __repr__(self) -> str: | ||||
| @@ -192,7 +190,7 @@ class Matcher(metaclass=MatcherMeta): | ||||
|         type_: str = "", | ||||
|         rule: Optional[Rule] = None, | ||||
|         permission: Optional[Permission] = None, | ||||
|         handlers: Optional[List[Union[T_Handler, Dependent[Any]]]] = None, | ||||
|         handlers: Optional[list[Union[T_Handler, Dependent[Any]]]] = None, | ||||
|         temp: bool = False, | ||||
|         priority: int = 1, | ||||
|         block: bool = False, | ||||
| @@ -206,7 +204,7 @@ class Matcher(metaclass=MatcherMeta): | ||||
|         default_permission_updater: Optional[ | ||||
|             Union[T_PermissionUpdater, Dependent[Permission]] | ||||
|         ] = None, | ||||
|     ) -> Type[Self]: | ||||
|     ) -> Type[Self]:  # noqa: UP006 | ||||
|         """ | ||||
|         创建一个新的事件响应器,并存储至 `matchers <#matchers>`_ | ||||
|  | ||||
|   | ||||
| @@ -1,12 +1,13 @@ | ||||
| import abc | ||||
| from typing import TYPE_CHECKING | ||||
| from collections import defaultdict | ||||
| from typing import TYPE_CHECKING, List, Type, Mapping, MutableMapping | ||||
| from collections.abc import Mapping, MutableMapping | ||||
|  | ||||
| if TYPE_CHECKING: | ||||
|     from .matcher import Matcher | ||||
|  | ||||
|  | ||||
| class MatcherProvider(abc.ABC, MutableMapping[int, List[Type["Matcher"]]]): | ||||
| class MatcherProvider(abc.ABC, MutableMapping[int, list[type["Matcher"]]]): | ||||
|     """事件响应器存储器基类 | ||||
|  | ||||
|     参数: | ||||
| @@ -14,12 +15,12 @@ class MatcherProvider(abc.ABC, MutableMapping[int, List[Type["Matcher"]]]): | ||||
|     """ | ||||
|  | ||||
|     @abc.abstractmethod | ||||
|     def __init__(self, matchers: Mapping[int, List[Type["Matcher"]]]): | ||||
|     def __init__(self, matchers: Mapping[int, list[type["Matcher"]]]): | ||||
|         raise NotImplementedError | ||||
|  | ||||
|  | ||||
| class _DictProvider(defaultdict, MatcherProvider): | ||||
|     def __init__(self, matchers: Mapping[int, List[Type["Matcher"]]]): | ||||
|     def __init__(self, matchers: Mapping[int, list[type["Matcher"]]]): | ||||
|         super().__init__(list, matchers) | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user