Исходный код raito.core.routers.base_router

from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from aiogram import Router

__all__ = ("BaseRouter",)


[документация] class BaseRouter: """Base class providing router linking and unlinking functionality.""" def __init__(self, router: Router | None) -> None: """Initialize the BaseRouter instance. :param router: Router instance to manage :type router: Router | None, optional """ self._router = router @property def router(self) -> Router | None: """Get the managed router instance. :return: The managed router instance or None if not set :rtype: Router | None """ return self._router def _unlink_from_parent(self) -> None: """Unlink router from its parent router.""" if not self._router or not self._router.parent_router: return parent = self._router.parent_router if self._router in parent.sub_routers: parent.sub_routers.remove(self._router) def _link_to_parent(self, parent: Router) -> None: """Link router to a parent router. :param parent: Parent router to link to :type parent: Router """ if self._router and self._router not in parent.sub_routers: parent.sub_routers.append(self._router)