code: def kurtosis(
      a, axis=0, fisher=True, bias=True, nan_policy="propagate"
  ):
      if nan_policy != "propagate":
          raise NotImplementedError(
              "`nan_policy` other than 'propagate' have not been implemented."
          )
      n = a.shape[axis]  # noqa; for bias
      m2 = moment(a, 2, axis)
      m4 = moment(a, 4, axis)
      zero = m2 == 0
      olderr = np.seterr(all="ignore")
      try:
          vals = da.where(zero, 0, m4 / m2**2.0)
      finally:
          np.seterr(**olderr)
  
      if not bias:
          # need a version of np.place
          raise NotImplementedError("bias=False is not implemented.")
  
      if fisher:
          return vals - 3
      else:
          if vals.ndim == 0:
              # TODO: scalar, min is a workaround
              return vals.min()
  
          return vals
  
imports: from __future__ import annotations
  import math
  from collections import namedtuple
  import numpy
  import dask.array
  from dask import delayed
  from dask.array.ufunc import wrap_elemwise
  from dask.utils import derived_from
  from scipy import special
  from scipy.stats import distributions
label_desc: Use image node_id 8 for calling a global function with example usage: kurtosis(a, axis, fisher, bias, nan_policy) and returns: unknown, vals, vals