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
A utility method on function objects could simplify this: newFunc.update_info(func)
The main benefit I see is that an 'update_info' method is more future-proof. If some other attributes are added to function objects that should be preserved, update_info() can be updated in parallel to transfer them, and any code using the method continues to be correct.
Regards, Nick.
-- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.skystorm.net _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com