[Python-Dev] @deprecated (was: Useful thread project for 2.5?)

Raymond Hettinger python at rcn.com
Wed Mar 9 00:09:04 CET 2005


> Michael Chermside suggested:
>     import warnings
> 
>     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."""
>         def newFunc(*args, **kwargs):
>             warnings.warn("Call to deprecated function.")
>             return func(*args, **kwargs)
>         return newFunc


Decorators like this should preserve information about the underlying
function:

>     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."""
>         def newFunc(*args, **kwargs):
>             warnings.warn("Call to deprecated function.")
>             return func(*args, **kwargs)
          newFunc.__name__ = func.__name__
          newFunc.__doc__ = func.__doc__
          newFunc.__dict__.update(func.__dict__)
>         return newFunc


Raymond


More information about the Python-Dev mailing list