mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-11 01:54:53 +00:00
Add docstrings in middlewares module.
This commit is contained in:
parent
0295aed615
commit
115f1fe032
1 changed files with 37 additions and 1 deletions
|
|
@ -5,7 +5,16 @@ log = logging.getLogger('aiogram.Middleware')
|
|||
|
||||
|
||||
class MiddlewareManager:
|
||||
"""
|
||||
Middlewares manager. Works only with dispatcher.
|
||||
"""
|
||||
|
||||
def __init__(self, dispatcher):
|
||||
"""
|
||||
Init
|
||||
|
||||
:param dispatcher: instance of Dispatcher
|
||||
"""
|
||||
self.dispatcher = dispatcher
|
||||
self.loop = dispatcher.loop
|
||||
self.bot = dispatcher.bot
|
||||
|
|
@ -40,24 +49,51 @@ class MiddlewareManager:
|
|||
|
||||
|
||||
class BaseMiddleware:
|
||||
"""
|
||||
Base class for middleware.
|
||||
|
||||
All methods on the middle always must be coroutines and name starts with "on_" like "on_process_message".
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
self._configured = False
|
||||
self._manager = None
|
||||
|
||||
@property
|
||||
def manager(self) -> MiddlewareManager:
|
||||
"""
|
||||
Instance of MiddlewareManager
|
||||
"""
|
||||
if self._manager is None:
|
||||
raise RuntimeError('Middleware is not configured!')
|
||||
return self._manager
|
||||
|
||||
def setup(self, manager):
|
||||
"""
|
||||
Mark middleware as configured
|
||||
|
||||
:param manager:
|
||||
:return:
|
||||
"""
|
||||
self._manager = manager
|
||||
self._configured = True
|
||||
|
||||
def is_configured(self):
|
||||
def is_configured(self) -> bool:
|
||||
"""
|
||||
Check middleware is configured
|
||||
|
||||
:return:
|
||||
"""
|
||||
return self._configured
|
||||
|
||||
async def trigger(self, action, args):
|
||||
"""
|
||||
Trigger action.
|
||||
|
||||
:param action:
|
||||
:param args:
|
||||
:return:
|
||||
"""
|
||||
handler_name = f"on_{action}"
|
||||
handler = getattr(self, handler_name, None)
|
||||
if not handler:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue