parameters: (wrapper,
                     wrapped,
                     assigned = WRAPPER_ASSIGNMENTS,
                     updated = WRAPPER_UPDATES)
return_statement: return wrapper
docstring: Update a wrapper function to look like the wrapped function
  
         wrapper is the function to be updated
         wrapped is the original function
         assigned is a tuple naming the attributes assigned directly
         from the wrapped function to the wrapper function (defaults to
         functools.WRAPPER_ASSIGNMENTS)
         updated is a tuple naming the attributes of the wrapper that
         are updated with the corresponding attribute from the wrapped
         function (defaults to functools.WRAPPER_UPDATES)
docstring_summary: Update a wrapper function to look like the wrapped function
docstring_tokens: Update a wrapper function to look like the wrapped function
function: def update_wrapper(wrapper,
                     wrapped,
                     assigned = WRAPPER_ASSIGNMENTS,
                     updated = WRAPPER_UPDATES):
      """Update a wrapper function to look like the wrapped function
  
         wrapper is the function to be updated
         wrapped is the original function
         assigned is a tuple naming the attributes assigned directly
         from the wrapped function to the wrapper function (defaults to
         functools.WRAPPER_ASSIGNMENTS)
         updated is a tuple naming the attributes of the wrapper that
         are updated with the corresponding attribute from the wrapped
         function (defaults to functools.WRAPPER_UPDATES)
      """
      for attr in assigned:
          try:
              value = getattr(wrapped, attr)
          except AttributeError:
              pass
          else:
              setattr(wrapper, attr, value)
      for attr in updated:
          getattr(wrapper, attr).update(getattr(wrapped, attr, {}))
      # Issue #17482: set __wrapped__ last so we don't inadvertently copy it
      # from the wrapped function when updating __dict__
      wrapper.__wrapped__ = wrapped
      # Return the wrapper so this can be used as a decorator via partial()
      return wrapper
function_tokens: def update_wrapper ( wrapper , wrapped , assigned = WRAPPER_ASSIGNMENTS , updated = WRAPPER_UPDATES ) : for attr in assigned : try : value = getattr ( wrapped , attr ) except AttributeError : pass else : setattr ( wrapper , attr , value ) for attr in updated : getattr ( wrapper , attr ) . update ( getattr ( wrapped , attr , { } ) ) # Issue #17482: set __wrapped__ last so we don't inadvertently copy it # from the wrapped function when updating __dict__ wrapper . __wrapped__ = wrapped # Return the wrapper so this can be used as a decorator via partial() return wrapper