Skip to content

Instantly share code, notes, and snippets.

@upbit
Created March 10, 2017 02:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save upbit/05ccb9cd989cd4751b74734e068aeccd to your computer and use it in GitHub Desktop.
Save upbit/05ccb9cd989cd4751b74734e068aeccd to your computer and use it in GitHub Desktop.
@deprecated define for Python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import warnings
import functools
# http://stackoverflow.com/questions/2536307/decorators-in-the-python-standard-lib-deprecated-specifically
def deprecated(func):
"""This is a decorator which can be used to mark functions
as deprecated. It will result in a warning being emmitted
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__), category=DeprecationWarning, stacklevel=2)
warnings.simplefilter('default', DeprecationWarning) #reset filter
return func(*args, **kwargs)
return new_func
class SomeClass:
def foo(self):
return "foo"
@deprecated
def bar(self):
return "bar"
def main():
s = SomeClass()
out = s.foo() + s.bar()
print(out)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment