#NEWLINE# def _update_wrapper( wrapper , wrapped , assigned = WRAPPER_ASSIGNMENTS , updated = WRAPPER_UPDATES ) : #NEWLINE# #INDENT# 'Update a wrapper function to look like the wrapped function\n\n       wrapper is the function to be updated\n       wrapped is the original function\n       assigned is a tuple naming the attributes assigned directly\n       from the wrapped function to the wrapper function (defaults to\n       functools.WRAPPER_ASSIGNMENTS)\n       updated is a tuple naming the attributes of the wrapper that\n       are updated with the corresponding attribute from the wrapped\n       function (defaults to functools.WRAPPER_UPDATES)\n    ' #NEWLINE# for attr in assigned : #NEWLINE# #INDENT# setattr ( wrapper , attr , getattr ( wrapped , attr ) ) #NEWLINE# #UNINDENT# for attr in updated : #NEWLINE# #INDENT# getattr ( wrapper , attr ) . update ( getattr ( wrapped , assigned , { #NEWLINE# #INDENT# #NEWLINE# #UNINDENT# } ) ) #NEWLINE# #UNINDENT# return wrapper