code: def wraps(obj, attr_names=functools.WRAPPER_ASSIGNMENTS):
      """Safe version of , that can deal with missing attributes
      such as missing __module__ and __name__.
      """
      return functools.wraps(
          obj,
          assigned=(name for name in attr_names if hasattr(obj, name)),
      )
  
imports: import collections
  import functools
  import threading
  import operator
label_desc: Use image node_id 1 for calling a global function with example usage: wraps(obj, attr_names) and returns: functools