Исходный код vk_bot.state.manager
from typing import Any
from vk_bot.state.storage import BaseStorage, MemoryStorage
class StateManager:
def __init__(self, storage: BaseStorage | None = None) -> None:
self.storage = storage or MemoryStorage()
def get_state(self, user_id: int) -> str | None:
return self.storage.get_state(user_id)
def set_state(self, user_id: int, state: str) -> None:
self.storage.set_state(user_id, state)
def get_data(self, user_id: int) -> dict[str, Any]:
return self.storage.get_data(user_id)
def set_data(self, user_id: int, data: dict[str, Any]) -> None:
self.storage.set_data(user_id, data)
def update_data(self, user_id: int, **kwargs: Any) -> None:
data = self.get_data(user_id)
data.update(kwargs)
self.set_data(user_id, data)
def reset(self, user_id: int) -> None:
self.storage.delete(user_id)
[документация]
class State:
def __init__(self, name: str | None = None) -> None:
self._name = name
def __set_name__(self, owner: type, name: str) -> None:
if not self._name:
self._name = f"{owner.__name__}:{name}"
def __get__(self, obj: object, objtype: type | None = None) -> str | None:
return self._name
def __str__(self) -> str:
return self._name or ""
def __repr__(self) -> str:
return f"State({self._name})"