1
+ import builtins
2
+ from collections .abc import Iterator , AsyncIterator , Callable
1
3
import contextlib
2
4
import functools
3
5
import logging
4
6
from asyncio import iscoroutinefunction
5
- from typing import Any , TypeVar , Generic , Iterator , AsyncGenerator , Set , Callable
7
+ from typing import Any , TypeVar , Generic , TYPE_CHECKING
6
8
7
9
from django .conf import settings
8
10
from django .core .cache .backends .base import BaseCache
9
11
from django .utils .module_loading import import_string
10
12
11
13
from django_valkey .exceptions import ConnectionInterrupted
14
+ from django_valkey .typing import KeyT
15
+
16
+ if TYPE_CHECKING :
17
+ from valkey .lock import Lock
18
+ from valkey .asyncio .lock import Lock as ALock
12
19
13
20
Client = TypeVar ("Client" )
14
21
Backend = TypeVar ("Backend" )
@@ -91,19 +98,19 @@ def client(self) -> Client:
91
98
return self ._client
92
99
93
100
@omit_exception
94
- def mset (self , * args , ** kwargs ):
101
+ def mset (self , * args , ** kwargs ) -> bool :
95
102
return self .client .mset (* args , ** kwargs )
96
103
97
104
@omit_exception
98
- async def amset (self , * args , ** kwargs ):
105
+ async def amset (self , * args , ** kwargs ) -> bool :
99
106
return await self .client .amset (* args , ** kwargs )
100
107
101
108
@omit_exception
102
- def mget (self , * args , ** kwargs ):
109
+ def mget (self , * args , ** kwargs ) -> dict | list [ Any ] :
103
110
return self .client .mget (* args , ** kwargs )
104
111
105
112
@omit_exception
106
- async def amget (self , * args , ** kwargs ):
113
+ async def amget (self , * args , ** kwargs ) -> dict | list [ Any ] :
107
114
return await self .client .amget (* args , ** kwargs )
108
115
109
116
@omit_exception
@@ -147,13 +154,13 @@ async def apexpire_at(self, *args, **kwargs) -> bool:
147
154
return await self .client .apexpire_at (* args , ** kwargs )
148
155
149
156
@omit_exception
150
- def get_lock (self , * args , ** kwargs ):
157
+ def get_lock (self , * args , ** kwargs ) -> "Lock" :
151
158
return self .client .get_lock (* args , ** kwargs )
152
159
153
160
lock = get_lock
154
161
155
162
@omit_exception
156
- async def aget_lock (self , * args , ** kwargs ):
163
+ async def aget_lock (self , * args , ** kwargs ) -> "ALock" :
157
164
return await self .client .aget_lock (* args , ** kwargs )
158
165
159
166
alock = aget_lock
@@ -169,7 +176,7 @@ async def adelete_pattern(self, *args, **kwargs) -> int:
169
176
return await self .client .adelete_pattern (* args , ** kwargs )
170
177
171
178
@omit_exception
172
- def ttl (self , * args , ** kwargs ) -> int | None :
179
+ def ttl (self , * args , ** kwargs ) -> int :
173
180
return self .client .ttl (* args , ** kwargs )
174
181
175
182
@omit_exception
@@ -185,29 +192,29 @@ async def apttl(self, *args, **kwargs) -> int:
185
192
return await self .client .apttl (* args , ** kwargs )
186
193
187
194
@omit_exception
188
- def iter_keys (self , * args , ** kwargs ) -> Iterator :
195
+ def iter_keys (self , * args , ** kwargs ) -> Iterator [ KeyT ] :
189
196
return self .client .iter_keys (* args , ** kwargs )
190
197
191
198
@omit_exception
192
- async def aiter_keys (self , * args , ** kwargs ) -> AsyncGenerator :
199
+ async def aiter_keys (self , * args , ** kwargs ) -> AsyncIterator [ KeyT ] :
193
200
async with contextlib .aclosing (self .client .aiter_keys (* args , ** kwargs )) as it :
194
201
async for key in it :
195
202
yield key
196
203
197
204
@omit_exception
198
- def keys (self , * args , ** kwargs ) -> list [ Any ] :
205
+ def keys (self , * args , ** kwargs ) -> list :
199
206
return self .client .keys (* args , ** kwargs )
200
207
201
208
@omit_exception
202
- async def akeys (self , * args , ** kwargs ) -> list [ Any ] :
209
+ async def akeys (self , * args , ** kwargs ) -> list :
203
210
return await self .client .akeys (* args , ** kwargs )
204
211
205
212
@omit_exception
206
- def scan (self , * args , ** kwargs ) -> tuple [int , list [str ]]:
213
+ def scan (self , * args , ** kwargs ) -> tuple [int , list [Any ]]:
207
214
return self .client .scan (* args , ** kwargs )
208
215
209
216
@omit_exception
210
- async def ascan (self , * args , ** kwargs ) -> tuple [int , list [str ]]:
217
+ async def ascan (self , * args , ** kwargs ) -> tuple [int , list [Any ]]:
211
218
return await self .client .ascan (* args , ** kwargs )
212
219
213
220
@omit_exception
@@ -227,11 +234,11 @@ async def ascard(self, *args, **kwargs) -> int:
227
234
return await self .client .ascard (* args , ** kwargs )
228
235
229
236
@omit_exception
230
- def sdiff (self , * args , ** kwargs ) -> Set [Any ]:
237
+ def sdiff (self , * args , ** kwargs ) -> builtins . set [ Any ] | list [Any ]:
231
238
return self .client .sdiff (* args , ** kwargs )
232
239
233
240
@omit_exception
234
- async def asdiff (self , * args , ** kwargs ) -> Set [Any ]:
241
+ async def asdiff (self , * args , ** kwargs ) -> builtins . set [ Any ] | list [Any ]:
235
242
return await self .client .asdiff (* args , ** kwargs )
236
243
237
244
@omit_exception
@@ -243,11 +250,11 @@ async def asdiffstore(self, *args, **kwargs) -> int:
243
250
return await self .client .asdiffstore (* args , ** kwargs )
244
251
245
252
@omit_exception
246
- def sinter (self , * args , ** kwargs ) -> Set [Any ]:
253
+ def sinter (self , * args , ** kwargs ) -> builtins . set [ Any ] | list [Any ]:
247
254
return self .client .sinter (* args , ** kwargs )
248
255
249
256
@omit_exception
250
- async def asinter (self , * args , ** kwargs ) -> Set [Any ]:
257
+ async def asinter (self , * args , ** kwargs ) -> builtins . set [ Any ] | list [Any ]:
251
258
return await self .client .asinter (* args , ** kwargs )
252
259
253
260
@omit_exception
@@ -283,11 +290,11 @@ async def asismember(self, *args, **kwargs) -> bool:
283
290
return await self .client .asismember (* args , ** kwargs )
284
291
285
292
@omit_exception
286
- def smembers (self , * args , ** kwargs ) -> Set [Any ]:
293
+ def smembers (self , * args , ** kwargs ) -> builtins . set [ Any ] | list [Any ]:
287
294
return self .client .smembers (* args , ** kwargs )
288
295
289
296
@omit_exception
290
- async def asmembers (self , * args , ** kwargs ) -> Set [Any ]:
297
+ async def asmembers (self , * args , ** kwargs ) -> builtins . set [ Any ] | list [Any ]:
291
298
return await self .client .asmembers (* args , ** kwargs )
292
299
293
300
@omit_exception
@@ -299,19 +306,19 @@ async def asmove(self, *args, **kwargs) -> bool:
299
306
return await self .client .asmove (* args , ** kwargs )
300
307
301
308
@omit_exception
302
- def spop (self , * args , ** kwargs ) -> Set | Any :
309
+ def spop (self , * args , ** kwargs ) -> builtins . set | list | Any :
303
310
return self .client .spop (* args , ** kwargs )
304
311
305
312
@omit_exception
306
- async def aspop (self , * args , ** kwargs ) -> Set | Any :
313
+ async def aspop (self , * args , ** kwargs ) -> builtins . set | list | Any :
307
314
return await self .client .aspop (* args , ** kwargs )
308
315
309
316
@omit_exception
310
- def srandmember (self , * args , ** kwargs ) -> list | Any :
317
+ def srandmember (self , * args , ** kwargs ) -> builtins . set | list | Any :
311
318
return self .client .srandmember (* args , ** kwargs )
312
319
313
320
@omit_exception
314
- async def asrandmember (self , * args , ** kwargs ) -> list | Any :
321
+ async def asrandmember (self , * args , ** kwargs ) -> builtins . set | list | Any :
315
322
return await self .client .asrandmember (* args , ** kwargs )
316
323
317
324
@omit_exception
@@ -323,29 +330,31 @@ async def asrem(self, *args, **kwargs) -> int:
323
330
return await self .client .asrem (* args , ** kwargs )
324
331
325
332
@omit_exception
326
- def sscan (self , * args , ** kwargs ) -> Set [ Any ]:
333
+ def sscan (self , * args , ** kwargs ) -> tuple [ int , builtins . set [ Any ] | list [ Any ] ]:
327
334
return self .client .sscan (* args , ** kwargs )
328
335
329
336
@omit_exception
330
- async def asscan (self , * args , ** kwargs ) -> Set [Any ]:
337
+ async def asscan (
338
+ self , * args , ** kwargs
339
+ ) -> tuple [int , builtins .set [Any ] | list [Any ]]:
331
340
return await self .client .asscan (* args , ** kwargs )
332
341
333
342
@omit_exception
334
- def sscan_iter (self , * args , ** kwargs ) -> Iterator :
343
+ def sscan_iter (self , * args , ** kwargs ) -> Iterator [ Any ] :
335
344
return self .client .sscan_iter (* args , ** kwargs )
336
345
337
346
@omit_exception
338
- async def asscan_iter (self , * args , ** kwargs ) -> AsyncGenerator :
347
+ async def asscan_iter (self , * args , ** kwargs ) -> AsyncIterator [ Any ] :
339
348
async with contextlib .aclosing (self .client .asscan_iter (* args , ** kwargs )) as it :
340
349
async for key in it :
341
350
yield key
342
351
343
352
@omit_exception
344
- def sunion (self , * args , ** kwargs ) -> Set [Any ]:
353
+ def sunion (self , * args , ** kwargs ) -> builtins . set [ Any ] | list [Any ]:
345
354
return self .client .sunion (* args , ** kwargs )
346
355
347
356
@omit_exception
348
- async def asunion (self , * args , ** kwargs ) -> Set [Any ]:
357
+ async def asunion (self , * args , ** kwargs ) -> builtins . set [ Any ] | list [Any ]:
349
358
return await self .client .asunion (* args , ** kwargs )
350
359
351
360
@omit_exception
@@ -389,19 +398,19 @@ async def ahdel_many(self, *args, **kwargs) -> int:
389
398
return await self .client .ahdel_many (* args , ** kwargs )
390
399
391
400
@omit_exception
392
- def hget (self , * args , ** kwargs ) -> bytes | None :
401
+ def hget (self , * args , ** kwargs ) -> Any | None :
393
402
return self .client .hget (* args , ** kwargs )
394
403
395
404
@omit_exception
396
- async def ahget (self , * args , ** kwargs ) -> str | None :
405
+ async def ahget (self , * args , ** kwargs ) -> Any | None :
397
406
return await self .client .ahget (* args , ** kwargs )
398
407
399
408
@omit_exception
400
- def hgetall (self , * args , ** kwargs ) -> dict :
409
+ def hgetall (self , * args , ** kwargs ) -> dict [ str , Any ] :
401
410
return self .client .hgetall (* args , ** kwargs )
402
411
403
412
@omit_exception
404
- async def ahgetall (self , * args , ** kwargs ) -> dict :
413
+ async def ahgetall (self , * args , ** kwargs ) -> dict [ str , Any ] :
405
414
return await self .client .ahgetall (* args , ** kwargs )
406
415
407
416
@omit_exception
0 commit comments