original_docstring: 
      Return a function with same code, globals, closure, and name (or provided name).
      
docstring: Return a function with same code, globals, closure, and name (or provided name).
docstring_tokens: Return a function with same code globals closure and name ( or provided name ) .
code: def copy_func(f, name=None):
      """
      Return a function with same code, globals, closure, and name (or provided name).
      """
      fn = types.FunctionType(f.__code__, f.__globals__, name or f.__name__,
              f.__defaults__, f.__closure__)
      # If f has been given attributes
      fn.__dict__.update(f.__dict__)
      return fn
code_tokens: def copy_func ( f , name = None ) : fn = types . FunctionType ( f . __code__ , f . __globals__ , name or f . __name__ , f . __defaults__ , f . __closure__ ) fn . __dict__ . update ( f . __dict__ ) return fn
short_docstring: Return a function with same code, globals, closure, and name (or provided name).
short_docstring_tokens: Return a function with same code globals closure and name ( or provided name ) .
comment: """
      Return a function with same code, globals, closure, and name (or provided name).
      """$SEP$# If f has been given attributes