code: def __getattr__(self, key):
      if key in self._forward_attrs:
          return getattr(self._ufunc, key)
      raise AttributeError(
          f"{type(self).__name__!r} object has no attribute {key!r}"
      )
  
imports: from __future__ import annotations
  from functools import partial
  from operator import getitem
  import numpy
  from dask import core
  from dask.array.core import Array, apply_infer_dtype, asarray, blockwise, elemwise
  from dask.base import is_dask_collection, normalize_function
  from dask.highlevelgraph import HighLevelGraph
  from dask.utils import derived_from, funcname
label_desc: Use image node_id 2 for calling the ufunc obj's underlying member method code with example usage: obj.__getattr__(key) and returns: getattr