GildedRose-Refactoring-Kata/.venv/lib/python3.12/site-packages/approval_utilities/utilities/deprecated.py
2025-06-22 13:36:01 +05:30

26 lines
844 B
Python

import functools
import warnings
from typing import Callable
def deprecated(reason: str) -> Callable:
def decorator(func: Callable) -> Callable:
"""This is a decorator which can be used to mark functions
as deprecated. It will result in a warning being emitted
when the function is used."""
@functools.wraps(func)
def new_func(*args, **kwargs):
warnings.simplefilter("always", DeprecationWarning) # turn off filter
warnings.warn(
"Call to deprecated function {}. {}".format(func.__name__, reason),
category=DeprecationWarning,
stacklevel=2,
)
warnings.simplefilter("default", DeprecationWarning) # reset filter
return func(*args, **kwargs)
return new_func
return decorator