diff --git a/CHANGES/941.misc.rst b/CHANGES/941.misc.rst new file mode 100644 index 00000000..9eb14085 --- /dev/null +++ b/CHANGES/941.misc.rst @@ -0,0 +1 @@ +Removed deprecated :code:`router._handler` and :code:`router.register__handler` methods. diff --git a/aiogram/dispatcher/router.py b/aiogram/dispatcher/router.py index 9f1c0f77..da0b4426 100644 --- a/aiogram/dispatcher/router.py +++ b/aiogram/dispatcher/router.py @@ -1,17 +1,16 @@ from __future__ import annotations import warnings -from typing import Any, Dict, Generator, List, Optional, Set, Union +from typing import Any, Dict, Final, Generator, List, Optional, Set, Union from ..types import TelegramObject from ..utils.warnings import CodeHasNoEffect from .event.bases import REJECTED, UNHANDLED from .event.event import EventObserver -from .event.handler import CallbackType from .event.telegram import TelegramEventObserver from .filters import BUILTIN_FILTERS -INTERNAL_UPDATE_TYPES = frozenset({"update", "error"}) +INTERNAL_UPDATE_TYPES: Final[frozenset[str]] = frozenset({"update", "error"}) class Router: @@ -242,288 +241,3 @@ class Router: await self.shutdown.trigger(*args, **kwargs) for router in self.sub_routers: await router.emit_shutdown(*args, **kwargs) - - @property - def message_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.message_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.message(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.message - - @property - def edited_message_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.edited_message_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.edited_message(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.edited_message - - @property - def channel_post_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.channel_post_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.channel_post(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.channel_post - - @property - def edited_channel_post_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.edited_channel_post_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.edited_channel_post(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.edited_channel_post - - @property - def inline_query_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.inline_query_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.inline_query(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.inline_query - - @property - def chosen_inline_result_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.chosen_inline_result_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.chosen_inline_result(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.chosen_inline_result - - @property - def callback_query_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.callback_query_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.callback_query(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.callback_query - - @property - def shipping_query_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.shipping_query_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.shipping_query(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.shipping_query - - @property - def pre_checkout_query_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.pre_checkout_query_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.pre_checkout_query(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.pre_checkout_query - - @property - def poll_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.poll_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.poll(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.poll - - @property - def poll_answer_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.poll_answer_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.poll_answer(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.poll_answer - - @property - def my_chat_member_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.my_chat_member_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.my_chat_member(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.my_chat_member - - @property - def chat_member_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.chat_member_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.chat_member(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.chat_member - - @property - def chat_join_request_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.chat_join_request_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.chat_join_request(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.chat_join_request - - @property - def errors_handler(self) -> TelegramEventObserver: - warnings.warn( - "`Router.errors_handler(...)` is deprecated and will be removed in version 3.2 " - "use `Router.errors(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.errors - - def register_message(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_message(...)` is deprecated and will be removed in version 3.2 " - "use `Router.message.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.message.register(*args, **kwargs) - - def register_edited_message(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_edited_message(...)` is deprecated and will be removed in version 3.2 " - "use `Router.edited_message.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.edited_message.register(*args, **kwargs) - - def register_channel_post(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_channel_post(...)` is deprecated and will be removed in version 3.2 " - "use `Router.channel_post.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.channel_post.register(*args, **kwargs) - - def register_edited_channel_post(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_edited_channel_post(...)` is deprecated and will be removed in version 3.2 " - "use `Router.edited_channel_post.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.edited_channel_post.register(*args, **kwargs) - - def register_inline_query(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_inline_query(...)` is deprecated and will be removed in version 3.2 " - "use `Router.inline_query.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.inline_query.register(*args, **kwargs) - - def register_chosen_inline_result(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_chosen_inline_result(...)` is deprecated and will be removed in version 3.2 " - "use `Router.chosen_inline_result.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.chosen_inline_result.register(*args, **kwargs) - - def register_callback_query(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_callback_query(...)` is deprecated and will be removed in version 3.2 " - "use `Router.callback_query.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.callback_query.register(*args, **kwargs) - - def register_shipping_query(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_shipping_query(...)` is deprecated and will be removed in version 3.2 " - "use `Router.shipping_query.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.shipping_query.register(*args, **kwargs) - - def register_pre_checkout_query(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_pre_checkout_query(...)` is deprecated and will be removed in version 3.2 " - "use `Router.pre_checkout_query.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.pre_checkout_query.register(*args, **kwargs) - - def register_poll(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_poll(...)` is deprecated and will be removed in version 3.2 " - "use `Router.poll.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.poll.register(*args, **kwargs) - - def register_poll_answer(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_poll_answer(...)` is deprecated and will be removed in version 3.2 " - "use `Router.poll_answer.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.poll_answer.register(*args, **kwargs) - - def register_my_chat_member(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_my_chat_member(...)` is deprecated and will be removed in version 3.2 " - "use `Router.my_chat_member.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.my_chat_member.register(*args, **kwargs) - - def register_chat_member(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_chat_member(...)` is deprecated and will be removed in version 3.2 " - "use `Router.chat_member.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.chat_member.register(*args, **kwargs) - - def register_chat_join_request(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_chat_join_request(...)` is deprecated and will be removed in version 3.2 " - "use `Router.chat_join_request.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.chat_join_request.register(*args, **kwargs) - - def register_errors(self, *args: Any, **kwargs: Any) -> CallbackType: - warnings.warn( - "`Router.register_errors(...)` is deprecated and will be removed in version 3.2 " - "use `Router.errors.register(...)`", - DeprecationWarning, - stacklevel=2, - ) - return self.errors.register(*args, **kwargs) diff --git a/aiogram/types/message_entity.py b/aiogram/types/message_entity.py index d50f797a..7d090134 100644 --- a/aiogram/types/message_entity.py +++ b/aiogram/types/message_entity.py @@ -1,6 +1,5 @@ from __future__ import annotations -import warnings from typing import TYPE_CHECKING, Optional from ..utils.text_decorations import add_surrogates, remove_surrogates @@ -34,11 +33,3 @@ class MessageEntity(MutableTelegramObject): return remove_surrogates( add_surrogates(text)[self.offset * 2 : (self.offset + self.length) * 2] ) - - def get_text(self, text: str) -> str: - warnings.warn( - "Method `MessageEntity.get_text(...)` deprecated and will be removed in 3.2.\n" - " Use `MessageEntity.extract(...)` instead.", - DeprecationWarning, - ) - return self.extract(text=text) diff --git a/tests/test_api/test_types/test_message_entity.py b/tests/test_api/test_types/test_message_entity.py index 363824a5..572dbcb6 100644 --- a/tests/test_api/test_types/test_message_entity.py +++ b/tests/test_api/test_types/test_message_entity.py @@ -1,13 +1,7 @@ from aiogram.types import MessageEntity -from tests.deprecated import check_deprecated class TestMessageEntity: def test_extract(self): entity = MessageEntity(type="hashtag", length=4, offset=5) assert entity.extract("#foo #bar #baz") == "#bar" - - def test_get_text(self): - entity = MessageEntity(type="hashtag", length=4, offset=5) - with check_deprecated("3.2", exception=AttributeError): - assert entity.get_text("#foo #bar #baz") == "#bar" diff --git a/tests/test_dispatcher/test_deprecated.py b/tests/test_dispatcher/test_deprecated.py deleted file mode 100644 index 853e5902..00000000 --- a/tests/test_dispatcher/test_deprecated.py +++ /dev/null @@ -1,42 +0,0 @@ -import pytest - -from aiogram.dispatcher.event.telegram import TelegramEventObserver -from aiogram.dispatcher.router import Router -from tests.deprecated import check_deprecated - -OBSERVERS = { - "message", - "edited_message", - "channel_post", - "edited_channel_post", - "inline_query", - "chosen_inline_result", - "callback_query", - "shipping_query", - "pre_checkout_query", - "poll", - "poll_answer", - "my_chat_member", - "chat_member", - "chat_join_request", - "errors", -} - - -@pytest.mark.parametrize("observer_name", OBSERVERS) -def test_deprecated_handlers_name(observer_name: str): - router = Router() - - with check_deprecated("3.2", exception=AttributeError): - observer = getattr(router, f"{observer_name}_handler") - assert isinstance(observer, TelegramEventObserver) - - -@pytest.mark.parametrize("observer_name", OBSERVERS) -def test_deprecated_register_handlers(observer_name: str): - router = Router() - - with check_deprecated("3.2", exception=AttributeError): - register = getattr(router, f"register_{observer_name}") - register(lambda event: True) - assert callable(register)