code: def interpolate_array_2d(
      data: np.ndarray,
      method: str = "pad",
      axis: AxisInt = 0,
      index: Index | None = None,
      limit: int | None = None,
      limit_direction: str = "forward",
      limit_area: str | None = None,
      fill_value: Any | None = None,
      coerce: bool = False,
      downcast: str | None = None,
      **kwargs,
  ) -> None:
      """
      Wrapper to dispatch to either interpolate_2d or _interpolate_2d_with_fill.
  
      Notes
      -----
      Alters 'data' in-place.
      """
      try:
          m = clean_fill_method(method)
      except ValueError:
          m = None
  
      if m is not None:
          if fill_value is not None:
              # similar to validate_fillna_kwargs
              raise ValueError("Cannot pass both fill_value and method")
  
          interpolate_2d(
              data,
              method=m,
              axis=axis,
              limit=limit,
              limit_area=limit_area,
          )
      else:
          assert index is not None  # for mypy
  
          _interpolate_2d_with_fill(
              data=data,
              index=index,
              axis=axis,
              method=method,
              limit=limit,
              limit_direction=limit_direction,
              limit_area=limit_area,
              fill_value=fill_value,
              **kwargs,
          )
  
imports: from __future__ import annotations
  from functools import partial, wraps
  from typing import TYPE_CHECKING, Any, cast
  import numpy
  from pandas._libs import NaT, algos, lib
  from pandas._typing import ArrayLike, Axis, AxisInt, F, npt
  from pandas.compat._optional import import_optional_dependency
  from pandas.core.dtypes.cast import infer_dtype_from
  from pandas.core.dtypes.common import is_array_like, is_numeric_v_string_like, is_object_dtype, needs_i8_conversion
  from pandas.core.dtypes.missing import is_valid_na_for_dtype, isna, na_value_for_dtype
label_desc: Use image node_id 6 for calling a global function with example usage: interpolate_array_2d(data, method, axis, index, limit, limit_direction, limit_area, fill_value, coerce, downcast) without return types