code: def _nanminmax(meth, fill_value_typ):
      @bottleneck_switch(name=f"nan{meth}")
      @_datetimelike_compat
      def reduction(
          values: np.ndarray,
          *,
          axis: AxisInt | None = None,
          skipna: bool = True,
          mask: npt.NDArray[np.bool_] | None = None,
      ):
          if values.size == 0:
              return _na_for_min_count(values, axis)
  
          values, mask = _get_values(
              values, skipna, fill_value_typ=fill_value_typ, mask=mask
          )
          result = getattr(values, meth)(axis)
          result = _maybe_null_out(result, axis, mask, values.shape)
          return result
  
      return reduction
  
imports: from __future__ import annotations
  import functools
  import itertools
  from typing import Any, Callable, cast
  import warnings
  import numpy
  from pandas._config import get_option
  from pandas._libs import NaT, NaTType, iNaT, lib
  from pandas._typing import ArrayLike, AxisInt, CorrelationMethod, Dtype, DtypeObj, F, Scalar, Shape, npt
  from pandas.compat._optional import import_optional_dependency
  from pandas.util._exceptions import find_stack_level
  from pandas.core.dtypes.common import is_complex, is_float, is_float_dtype, is_integer, is_numeric_dtype, is_object_dtype, needs_i8_conversion, pandas_dtype
  from pandas.core.dtypes.missing import isna, na_value_for_dtype, notna
label_desc: Use image node_id 24 for calling a global function with example usage: _nanminmax(meth, fill_value_typ) and returns: reduction, result, _na_for_min_count