From 78748d36fd1fe9a71c3d42a7a88e0b63edd1c3d7 Mon Sep 17 00:00:00 2001 From: JRoot Junior Date: Wed, 19 Mar 2025 21:04:48 +0200 Subject: [PATCH] Update deep linking documentation and bump version to 3.19.0 --- CHANGES.rst | 63 +++++++++++++++++++++++++++++++++++ CHANGES/1493.bugfix.rst | 1 - CHANGES/1592.misc.rst | 5 --- CHANGES/1637.feature.rst | 4 --- CHANGES/1641.bugfix.rst | 20 ----------- CHANGES/1648.feature.rst | 2 -- CHANGES/1650.doc.rst | 1 - CHANGES/1651.feature.rst | 2 -- aiogram/__meta__.py | 2 +- aiogram/utils/deep_linking.py | 14 ++++---- docs/utils/deep_linking.rst | 4 +++ 11 files changed, 76 insertions(+), 42 deletions(-) delete mode 100644 CHANGES/1493.bugfix.rst delete mode 100644 CHANGES/1592.misc.rst delete mode 100644 CHANGES/1637.feature.rst delete mode 100644 CHANGES/1641.bugfix.rst delete mode 100644 CHANGES/1648.feature.rst delete mode 100644 CHANGES/1650.doc.rst delete mode 100644 CHANGES/1651.feature.rst diff --git a/CHANGES.rst b/CHANGES.rst index 75c3628e..3377d2c3 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -16,6 +16,69 @@ Changelog .. towncrier release notes start +3.19.0 (2025-03-19) +==================== + +Features +-------- + +- Added TypedDict definitions for middleware context data to the dispatcher dependency injection docs. + + So, now you can use :class:`aiogram.dispatcher.middleware.data.MiddlewareData` directly or + extend it with your own data in the middlewares. + `#1637 `_ +- Added new method :func:`aiogram.utils.deep_linking.create_startapp_link` to deep-linking module + for creating "startapp" deep links. + See also https://core.telegram.org/api/links#main-mini-app-links and https://core.telegram.org/api/links#direct-mini-app-links + `#1648 `_, `#1651 `_ + + +Bugfixes +-------- + +- Fixed handling of default empty string ("") in CallbackData filter + `#1493 `_ +- Resolved incorrect ordering of registered handlers in the :class:`aiogram.fsm.scene.Scene` + object caused by :code:`inspect.getmembers` returning sorted members. + Handlers are now registered in the order of their definition within the class, + ensuring proper execution sequence, especially when handling filters with different + levels of specificity. + + For backward compatibility, the old behavior can be restored by setting the + :code:`attrs_resolver=inspect_members_resolver` parameter in the :class:`aiogram.fsm.scene.Scene`: + + .. code-block:: python + + from aiogram.utils.class_attrs_resolver import inspect_members_resolver + + + class MyScene(Scene, attrs_resolver=inspect_members_resolver): + + In this case, the handlers will be registered in the order returned by :code:`inspect.getmembers`. + + By default, the :code:`attrs_resolver` parameter is set to :code:`get_sorted_mro_attrs_resolver` now, + so you **don't need** to specify it explicitly. + `#1641 `_ + + +Improved Documentation +---------------------- + +- Updated 🇺🇦Ukrainian docs translation + `#1650 `_ + + +Misc +---- + +- Introduce Union types for streamlined type handling. + + Implemented Union types across various modules to consolidate and simplify type annotations. + This change replaces repetitive union declarations with reusable Union aliases, + improving code readability and maintainability. + `#1592 `_ + + 3.18.0 (2025-02-16) ==================== diff --git a/CHANGES/1493.bugfix.rst b/CHANGES/1493.bugfix.rst deleted file mode 100644 index 386cdb71..00000000 --- a/CHANGES/1493.bugfix.rst +++ /dev/null @@ -1 +0,0 @@ -Fix handling of default empty string ("") in CallbackData filter diff --git a/CHANGES/1592.misc.rst b/CHANGES/1592.misc.rst deleted file mode 100644 index dfbc0cb1..00000000 --- a/CHANGES/1592.misc.rst +++ /dev/null @@ -1,5 +0,0 @@ -Introduce Union types for streamlined type handling. - -Implemented Union types across various modules to consolidate and simplify type annotations. -This change replaces repetitive union declarations with reusable Union aliases, -improving code readability and maintainability. diff --git a/CHANGES/1637.feature.rst b/CHANGES/1637.feature.rst deleted file mode 100644 index 58596250..00000000 --- a/CHANGES/1637.feature.rst +++ /dev/null @@ -1,4 +0,0 @@ -Add TypedDict definitions for middleware context data to the dispatcher dependency injection docs. - -So, now you can use :class:`aiogram.dispatcher.middleware.data.MiddlewareData` directly or -extend it with your own data in the middlewares. diff --git a/CHANGES/1641.bugfix.rst b/CHANGES/1641.bugfix.rst deleted file mode 100644 index b4ebe2f4..00000000 --- a/CHANGES/1641.bugfix.rst +++ /dev/null @@ -1,20 +0,0 @@ -Resolved incorrect ordering of registered handlers in the :class:`aiogram.fsm.scene.Scene` -object caused by :code:`inspect.getmembers` returning sorted members. -Handlers are now registered in the order of their definition within the class, -ensuring proper execution sequence, especially when handling filters with different -levels of specificity. - -For backward compatibility, the old behavior can be restored by setting the -:code:`attrs_resolver=inspect_members_resolver` parameter in the :class:`aiogram.fsm.scene.Scene`: - -.. code-block:: python - - from aiogram.utils.class_attrs_resolver import inspect_members_resolver - - - class MyScene(Scene, attrs_resolver=inspect_members_resolver): - -In this case, the handlers will be registered in the order returned by :code:`inspect.getmembers`. - -By default, the :code:`attrs_resolver` parameter is set to :code:`get_sorted_mro_attrs_resolver` now, -so you **don't need** to specify it explicitly. diff --git a/CHANGES/1648.feature.rst b/CHANGES/1648.feature.rst deleted file mode 100644 index bc86ada4..00000000 --- a/CHANGES/1648.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Added new method to utils/deep_linking.py module to creating "startapp" deep links, see also -https://core.telegram.org/api/links#main-mini-app-links diff --git a/CHANGES/1650.doc.rst b/CHANGES/1650.doc.rst deleted file mode 100644 index 6560510f..00000000 --- a/CHANGES/1650.doc.rst +++ /dev/null @@ -1 +0,0 @@ -Updated 🇺🇦Ukrainian docs translation diff --git a/CHANGES/1651.feature.rst b/CHANGES/1651.feature.rst deleted file mode 100644 index c724a8c1..00000000 --- a/CHANGES/1651.feature.rst +++ /dev/null @@ -1,2 +0,0 @@ -Updated "create_startapp_link" method, added app_name param for support direct mini app links, see -also https://core.telegram.org/api/links#direct-mini-app-links diff --git a/aiogram/__meta__.py b/aiogram/__meta__.py index ecd2ca4d..3e3345d6 100644 --- a/aiogram/__meta__.py +++ b/aiogram/__meta__.py @@ -1,2 +1,2 @@ -__version__ = "3.18.0" +__version__ = "3.19.0" __api_version__ = "8.3" diff --git a/aiogram/utils/deep_linking.py b/aiogram/utils/deep_linking.py index eb38dfd2..b35cddce 100644 --- a/aiogram/utils/deep_linking.py +++ b/aiogram/utils/deep_linking.py @@ -31,8 +31,7 @@ async def create_start_link( """ Create 'start' deep link with your payload. - If you need to encode payload or pass special characters - - set encode as True + If you need to encode payload or pass special characters - set encode as True :param bot: bot instance :param payload: args passed with /start @@ -59,8 +58,7 @@ async def create_startgroup_link( """ Create 'startgroup' deep link with your payload. - If you need to encode payload or pass special characters - - set encode as True + If you need to encode payload or pass special characters - set encode as True :param bot: bot instance :param payload: args passed with /start @@ -88,8 +86,12 @@ async def create_startapp_link( """ Create 'startapp' deep link with your payload. - If you need to encode payload or pass special characters - - set encode as True + If you need to encode payload or pass special characters - set encode as True + + **Read more**: + + - `Main Mini App links `_ + - `Direct mini app links `_ :param bot: bot instance :param payload: args passed with /start diff --git a/docs/utils/deep_linking.rst b/docs/utils/deep_linking.rst index ebf907dd..a7f4e3b5 100644 --- a/docs/utils/deep_linking.rst +++ b/docs/utils/deep_linking.rst @@ -57,4 +57,8 @@ References .. autofunction:: aiogram.utils.deep_linking.create_start_link +.. autofunction:: aiogram.utils.deep_linking.create_startgroup_link + +.. autofunction:: aiogram.utils.deep_linking.create_startapp_link + .. autofunction:: aiogram.utils.deep_linking.decode_payload