code: def _nanminmax(meth, fill_value_typ):
      @bottleneck_switch()
      def reduction(values, axis=None, skipna=True, mask=None):
          values, mask, dtype, dtype_max, fill_value = _get_values(
              values, skipna, fill_value_typ=fill_value_typ, mask=mask
          )
  
          if (
              axis is not None and values.shape[axis] == 0
          ) or values.size == 0:
              try:
                  result = getattr(values, meth)(axis, dtype=dtype_max)
                  result.fill(np.nan)
              except (
                  AttributeError,
                  TypeError,
                  ValueError,
                  np.core._internal.AxisError,
              ):
                  result = np.nan
          else:
              result = getattr(values, meth)(axis)
  
          result = _wrap_results(result, dtype, fill_value)
          return _maybe_null_out(result, axis, mask)
  
      reduction.__name__ = "nan" + meth
      return reduction
  
imports: from distutils.version import LooseVersion
  import functools
  import itertools
  import operator
  import warnings
  import numpy
  from pandas._libs import iNaT, lib, tslibs
  import pandas.compat
  from pandas.core.dtypes.cast import _int64_max, maybe_upcast_putmask
  from pandas.core.dtypes.common import _get_dtype, is_any_int_dtype, is_bool_dtype, is_complex, is_complex_dtype, is_datetime64_dtype, is_datetime64tz_dtype, is_datetime_or_timedelta_dtype, is_float, is_float_dtype, is_integer, is_integer_dtype, is_numeric_dtype, is_object_dtype, is_scalar, is_timedelta64_dtype, pandas_dtype
  from pandas.core.dtypes.dtypes import DatetimeTZDtype
  from pandas.core.dtypes.missing import isna, na_value_for_dtype, notna
  import pandas.core.common
  from pandas.core.config import get_option
label_desc: Use image node_id 19 for calling a global function with example usage: _nanminmax(meth, fill_value_typ) and returns: reduction, _maybe_null_out