mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-08 19:21:28 +00:00
26 lines
844 B
Python
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
|