code: def safe_wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS):
      """Like functools.wraps, but safe to use even if wrapped is not a function.
  
      Only needed on Python 2.
      """
      if all(hasattr(wrapped, attr) for attr in assigned):
          return functools.wraps(wrapped, assigned=assigned)
      else:
          return lambda x: x
  
imports: from __future__ import annotations
  import contextlib
  import functools
  import itertools
  import math
  import numbers
  import warnings
  import numpy
  from tlz import concat, frequencies
  from dask.array.core import Array
  from dask.array.numpy_compat import AxisError
  from dask.base import is_dask_collection, tokenize
  from dask.highlevelgraph import HighLevelGraph
  from dask.utils import has_keyword, is_arraylike, is_cupy_type, typename
label_desc: Use image node_id 12 for calling a global function with example usage: safe_wraps(wrapped, assigned) and returns: functools, function