def decorator(decorating_func):
""" takes a decorator and fixes it a bit. """
def new_decorator(func):
decorated_func = decorating_func(func)
decorated_func.__name__ = func.__name__
decorated_func.__doc__ = func.__doc__
decorated_func.__dict__.update(func.__dict__)
return decorated_func
new_decorator.__name__ = decorating_func.__name__
new_decorator.__doc__ = decorating_func.__doc__
new_decorator.__dict__.update(decorating_func.__dict__)
return new_decorator