def __call__(self, func):
msg = "Call to deprecated function {}".format(func.__name__)
if self.use_instead:
msg += '; use ' + self.use_instead + ' instead'
def wrapper(*args, **kwargs):
fingerprint = (func.__name__, func.__code__.co_filename, func.__code__.co_firstlineno)
if fingerprint not in self.seen:
warnings.warn_explicit(
msg,
category=DeprecationWarning,
filename=func.__code__.co_filename,
lineno=func.__code__.co_firstlineno + 1)
self.seen.update([fingerprint])
return func(*args, **kwargs)
wrapper.__doc__ = "Deprecated"
if self.use_instead:
wrapper.__doc__ += '; use ' + self.use_instead + ' instead'
return wrapper
评论列表
文章目录