diff options
author | Jelle Zijlstra <jelle.zijlstra@gmail.com> | 2022-05-02 03:08:14 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-02 12:08:14 +0300 |
commit | eca7075e33c48dc387bc8f3247e21a6997dd081d (patch) | |
tree | ea5e520da9e1423d946ce2b77ed5f3f3d3cee88a | |
parent | 09a52dba48221353eafa8188d73ab97e8f4ccc49 (diff) | |
download | redis-py-eca7075e33c48dc387bc8f3247e21a6997dd081d.tar.gz |
Fix incorrect return annotation in asyncio.lock (#2155)
NoReturn should be used only when the function never returns. In this case, the awaitable returns None if releasing the lock succeeds, so `Awaitable[None]` is right.
Noticed this while reviewing python/typeshed#7676
-rw-r--r-- | redis/asyncio/lock.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/redis/asyncio/lock.py b/redis/asyncio/lock.py index d486132..fc7df37 100644 --- a/redis/asyncio/lock.py +++ b/redis/asyncio/lock.py @@ -3,7 +3,7 @@ import sys import threading import uuid from types import SimpleNamespace -from typing import TYPE_CHECKING, Awaitable, NoReturn, Optional, Union +from typing import TYPE_CHECKING, Awaitable, Optional, Union from redis.exceptions import LockError, LockNotOwnedError @@ -243,7 +243,7 @@ class Lock: stored_token = encoder.encode(stored_token) return self.local.token is not None and stored_token == self.local.token - def release(self) -> Awaitable[NoReturn]: + def release(self) -> Awaitable[None]: """Releases the already acquired lock""" expected_token = self.local.token if expected_token is None: @@ -251,7 +251,7 @@ class Lock: self.local.token = None return self.do_release(expected_token) - async def do_release(self, expected_token: bytes): + async def do_release(self, expected_token: bytes) -> None: if not bool( await self.lua_release( keys=[self.name], args=[expected_token], client=self.redis |