From b4a12a60bfa52906591df466f8d6007332126342 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D0=B4=D0=B8=D0=BC=20=D0=A5=D1=80=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Mon, 14 Apr 2025 20:34:30 +0000 Subject: [PATCH] black + isort + Added ChangeLog --- CHANGES/<>.bugfix.rst | 2 ++ aiogram/fsm/scene.py | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 CHANGES/<>.bugfix.rst diff --git a/CHANGES/<>.bugfix.rst b/CHANGES/<>.bugfix.rst new file mode 100644 index 00000000..bf6e366e --- /dev/null +++ b/CHANGES/<>.bugfix.rst @@ -0,0 +1,2 @@ +- Scene action handlers (such as `enter`, `leave`, etc.) now properly receive context and data from observer (`outer_middleware`) middlewares, matching the behavior of regular handlers. +- Fixed `TypeError` when accessing middleware-injected arguments inside scene handlers. \ No newline at end of file diff --git a/aiogram/fsm/scene.py b/aiogram/fsm/scene.py index f92bc986..d2e94c96 100644 --- a/aiogram/fsm/scene.py +++ b/aiogram/fsm/scene.py @@ -556,7 +556,9 @@ class SceneWizard: if not self.scene: raise SceneException("Scene is not initialized") - loggers.scene.debug("Call action %r in scene %r (middleware aware)", action.name, self.scene_config.state) + loggers.scene.debug( + "Call action %r in scene %r (middleware aware)", action.name, self.scene_config.state + ) action_config = self.scene_config.actions.get(action, {}) if not action_config: loggers.scene.debug( @@ -588,9 +590,7 @@ class SceneWizard: return await action_config[event_type].call(self.scene, event, **data) await observer.wrap_outer_middleware( - _actual_handler, - event=self.event, - data={**self.data, **kwargs} + _actual_handler, event=self.event, data={**self.data, **kwargs} ) return True