code: def _get_fill_value(fill_value, src, out):
      if fill_value is None:
          if isinstance(src, np.ma.MaskedArray):
              fill_value = src.fill_value
          elif isinstance(out, np.ma.MaskedArray):
              fill_value = out.fill_value
          else:
              # use numpy's default fill_value
              fill_value = np.ma.array(
                  [0], mask=[False], dtype=src.dtype
              ).fill_value
      return fill_value
  
imports: from __future__ import annotations
  from itertools import groupby
  from math import floor, ceil
  import dask.array
  import numpy
  from dask.delayed import delayed
  from numba import prange
  from .utils import ngjit, ngjit_parallel
label_desc: Use image node_id 10 for calling a global function with example usage: _get_fill_value(fill_value, src, out) and returns: fill_value