mirror of
https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git
synced 2025-08-14 00:25:46 +02:00
34 lines
761 B
Python
34 lines
761 B
Python
from typing import TYPE_CHECKING, Any, Optional
|
|
|
|
from pydantic import BaseModel, PrivateAttr
|
|
from typing_extensions import Self
|
|
|
|
if TYPE_CHECKING:
|
|
from aiogram.client.bot import Bot
|
|
|
|
|
|
class BotContextController(BaseModel):
|
|
_bot: Optional["Bot"] = PrivateAttr()
|
|
|
|
def model_post_init(self, __context: Any) -> None:
|
|
self._bot = __context.get("bot") if __context else None
|
|
|
|
def as_(self, bot: Optional["Bot"]) -> Self:
|
|
"""
|
|
Bind object to a bot instance.
|
|
|
|
:param bot: Bot instance
|
|
:return: self
|
|
"""
|
|
self._bot = bot
|
|
return self
|
|
|
|
@property
|
|
def bot(self) -> Optional["Bot"]:
|
|
"""
|
|
Get bot instance.
|
|
|
|
:return: Bot instance
|
|
"""
|
|
return self._bot
|