diff --git a/aiogram/fsm/context.py b/aiogram/fsm/context.py index 96811df8..c9432c11 100644 --- a/aiogram/fsm/context.py +++ b/aiogram/fsm/context.py @@ -21,12 +21,12 @@ class FSMContext: return await self.storage.get_data(key=self.key) @overload - async def get_value(self, key: str) -> Any | None: ... + async def get_value(self, key: str) -> Optional[Any]: ... @overload async def get_value(self, key: str, default: Any) -> Any: ... - async def get_value(self, key, default=None): + async def get_value(self, key: str, default: Optional[Any] = None) -> Optional[Any]: return await self.storage.get_value(storage_key=self.key, dict_key=key, default=default) async def update_data( diff --git a/aiogram/fsm/scene.py b/aiogram/fsm/scene.py index f42e6083..0cbd0e8b 100644 --- a/aiogram/fsm/scene.py +++ b/aiogram/fsm/scene.py @@ -595,7 +595,7 @@ class SceneWizard: """ pass - async def get_value(self, key, default=None): + async def get_value(self, key: str, default: Optional[Any] = None) -> Optional[Any]: return await self.state.get_value(key, default) async def update_data( diff --git a/aiogram/fsm/storage/base.py b/aiogram/fsm/storage/base.py index c926eaa3..2e905337 100644 --- a/aiogram/fsm/storage/base.py +++ b/aiogram/fsm/storage/base.py @@ -145,7 +145,6 @@ class BaseStorage(ABC): pass @overload - @abstractmethod async def get_value(self, storage_key: StorageKey, dict_key: str) -> Optional[Any]: """ Get single value from data by key @@ -157,7 +156,6 @@ class BaseStorage(ABC): pass @overload - @abstractmethod async def get_value(self, storage_key: StorageKey, dict_key: str, default: Any) -> Any: """ Get single value from data by key @@ -169,6 +167,11 @@ class BaseStorage(ABC): """ pass + @abstractmethod + async def get_value( + self, storage_key: StorageKey, dict_key: str, default: Optional[Any] = None + ) -> Optional[Any]: ... + async def update_data(self, key: StorageKey, data: Dict[str, Any]) -> Dict[str, Any]: """ Update date in the storage for key (like dict.update) diff --git a/aiogram/fsm/storage/memory.py b/aiogram/fsm/storage/memory.py index 7e2e832f..348f2a3b 100644 --- a/aiogram/fsm/storage/memory.py +++ b/aiogram/fsm/storage/memory.py @@ -56,7 +56,9 @@ class MemoryStorage(BaseStorage): @overload async def get_value(self, storage_key: StorageKey, dict_key: str, default: Any) -> Any: ... - async def get_value(self, storage_key, dict_key: str, default=None): + async def get_value( + self, storage_key: StorageKey, dict_key: str, default: Optional[Any] = None + ) -> Optional[Any]: return copy(self.storage[storage_key].data.get(dict_key, default)) diff --git a/aiogram/fsm/storage/mongo.py b/aiogram/fsm/storage/mongo.py index 567df944..5e291be4 100644 --- a/aiogram/fsm/storage/mongo.py +++ b/aiogram/fsm/storage/mongo.py @@ -121,7 +121,9 @@ class MongoStorage(BaseStorage): @overload async def get_value(self, storage_key: StorageKey, dict_key: str, default: Any) -> Any: ... - async def get_value(self, storage_key, dict_key, default=None): + async def get_value( + self, storage_key: StorageKey, dict_key: str, default: Optional[Any] = None + ) -> Optional[Any]: return (await self.get_data(storage_key)).get(dict_key, default) async def update_data(self, key: StorageKey, data: Dict[str, Any]) -> Dict[str, Any]: diff --git a/aiogram/fsm/storage/redis.py b/aiogram/fsm/storage/redis.py index d4901b46..02eaa421 100644 --- a/aiogram/fsm/storage/redis.py +++ b/aiogram/fsm/storage/redis.py @@ -138,7 +138,9 @@ class RedisStorage(BaseStorage): @overload async def get_value(self, storage_key: StorageKey, dict_key: str, default: Any) -> Any: ... - async def get_value(self, storage_key, dict_key, default=None): + async def get_value( + self, storage_key: StorageKey, dict_key: str, default: Optional[Any] = None + ) -> Optional[Any]: return (await self.get_data(storage_key)).get(dict_key, default)