diff options
author | Aarni Koskela <akx@iki.fi> | 2022-10-30 13:31:03 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-30 13:31:03 +0200 |
commit | 842634e7fddeb32ba20aab0dacf557a958a4b00b (patch) | |
tree | 8b4a69503a650ab723963fc84f2357c7968054eb /redis/utils.py | |
parent | 9cf8e028863c79904d9536465e5844184109d209 (diff) | |
download | redis-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.py | 28 |
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 |