2525from typing import TYPE_CHECKING , Any
2626
2727import itsdangerous
28- import redis .asyncio as redis
2928from starlette .datastructures import MutableHeaders
3029from starlette .requests import HTTPConnection
3130
3231from ..redis import Redis
3332
3433
3534if TYPE_CHECKING :
36- import redis .asyncio as redis
3735 from starlette .types import ASGIApp , Message , Receive , Scope , Send
3836
3937 from ..redis import Redis
4341
4442
4543class Storage :
46- __slots__ = ("pool " , "_keys" )
44+ __slots__ = ("redis " , "_keys" )
4745
4846 def __init__ (self , * , redis : Redis | None = None ) -> None :
49- self .pool : redis . Redis | None = redis . pool if redis else None
47+ self .redis : Redis | None = redis
5048 self ._keys : dict [str , Any ] = {}
5149
5250 async def get (self , data : dict [str , Any ]) -> dict [str , Any ]:
@@ -57,23 +55,23 @@ async def get(self, data: dict[str, Any]) -> dict[str, Any]:
5755 await self .delete (key )
5856 return {}
5957
60- if self .pool :
61- session : Any = await self .pool .get (key ) # type: ignore
58+ if self .redis and self . redis . could_connect :
59+ session : Any = await self .redis . pool .get (key ) # type: ignore
6260 else :
6361 session : Any = self ._keys .get (key )
6462
6563 return json .loads (session ) if session else {}
6664
6765 async def set (self , key : str , value : dict [str , Any ], * , max_age : int ) -> None :
68- if self .pool :
69- await self .pool .set (key , json .dumps (value ), ex = max_age ) # type: ignore
66+ if self .redis and self . redis . could_connect :
67+ await self .redis . pool .set (key , json .dumps (value ), ex = max_age ) # type: ignore
7068 return
7169
7270 self ._keys [key ] = json .dumps (value )
7371
7472 async def delete (self , key : str ) -> None :
75- if self .pool :
76- await self .pool .delete (key ) # type: ignore
73+ if self .redis and self . redis . could_connect :
74+ await self .redis . pool .delete (key ) # type: ignore
7775 else :
7876 self ._keys .pop (key , None )
7977
0 commit comments