17
17
18
18
19
19
def exclusive (
20
- redis : RedisClientSDK | Callable [P , RedisClientSDK ],
20
+ redis : RedisClientSDK | Callable [... , RedisClientSDK ],
21
21
* ,
22
- lock_key : str | Callable [P , str ],
22
+ lock_key : str | Callable [... , str ],
23
23
lock_value : bytes | str | None = None ,
24
24
) -> Callable [[Callable [P , Awaitable [R ]]], Callable [P , Awaitable [R ]]]:
25
25
"""
@@ -43,14 +43,12 @@ def exclusive(
43
43
def decorator (func : Callable [P , Awaitable [R ]]) -> Callable [P , Awaitable [R ]]:
44
44
@functools .wraps (func )
45
45
async def wrapper (* args : P .args , ** kwargs : P .kwargs ) -> R :
46
- redis_lock_key = lock_key
47
- if callable (lock_key ):
48
- redis_lock_key = lock_key ( * args , ** kwargs )
46
+ redis_lock_key = (
47
+ lock_key ( * args , ** kwargs ) if callable (lock_key ) else lock_key
48
+ )
49
49
assert isinstance (redis_lock_key , str ) # nosec
50
50
51
- redis_client = redis
52
- if callable (redis ):
53
- redis_client = redis (* args , ** kwargs )
51
+ redis_client = redis (* args , ** kwargs ) if callable (redis ) else redis
54
52
assert isinstance (redis_client , RedisClientSDK ) # nosec
55
53
56
54
async with redis_client .lock_context (
0 commit comments