summaryrefslogtreecommitdiff
path: root/redis/utils.py
diff options
context:
space:
mode:
authorAarni Koskela <akx@iki.fi>2022-10-30 13:31:03 +0200
committerGitHub <noreply@github.com>2022-10-30 13:31:03 +0200
commit842634e7fddeb32ba20aab0dacf557a958a4b00b (patch)
tree8b4a69503a650ab723963fc84f2357c7968054eb /redis/utils.py
parent9cf8e028863c79904d9536465e5844184109d209 (diff)
downloadredis-py-842634e7fddeb32ba20aab0dacf557a958a4b00b.tar.gz
Remove `deprecated` dependency (#2386)
No need for an external library just for 5 annotations.
Diffstat (limited to 'redis/utils.py')
-rw-r--r--redis/utils.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/redis/utils.py b/redis/utils.py
index 25d2491..693d4e6 100644
--- a/redis/utils.py
+++ b/redis/utils.py
@@ -1,4 +1,5 @@
from contextlib import contextmanager
+from functools import wraps
from typing import Any, Dict, Mapping, Union
try:
@@ -80,3 +81,30 @@ def merge_result(command, res):
result.add(value)
return list(result)
+
+
+def warn_deprecated(name, reason="", version="", stacklevel=2):
+ import warnings
+
+ msg = f"Call to deprecated {name}."
+ if reason:
+ msg += f" ({reason})"
+ if version:
+ msg += f" -- Deprecated since version {version}."
+ warnings.warn(msg, category=DeprecationWarning, stacklevel=stacklevel)
+
+
+def deprecated_function(reason="", version="", name=None):
+ """
+ Decorator to mark a function as deprecated.
+ """
+
+ def decorator(func):
+ @wraps(func)
+ def wrapper(*args, **kwargs):
+ warn_deprecated(name or func.__name__, reason, version, stacklevel=3)
+ return func(*args, **kwargs)
+
+ return wrapper
+
+ return decorator