code: def _infer_fill_value(val):
      """
      infer the fill value for the nan/NaT from the provided
      scalar/ndarray/list-like if we are a NaT, return the correct dtyped
      element to provide proper block construction
      """
  
      if not is_list_like(val):
          val = [val]
      val = np.array(val, copy=False)
      if is_datetimelike(val):
          return np.array("NaT", dtype=val.dtype)
      elif is_object_dtype(val.dtype):
          dtype = lib.infer_dtype(ensure_object(val), skipna=False)
          if dtype in ["datetime", "datetime64"]:
              return np.array("NaT", dtype=_NS_DTYPE)
          elif dtype in ["timedelta", "timedelta64"]:
              return np.array("NaT", dtype=_TD_DTYPE)
      return np.nan
  
file_path: catboost/contrib/python/pandas/py2/pandas/core/dtypes/missing.py
imports: import numpy
  from pandas._libs import lib, missing
  from pandas._libs.tslibs import NaT, iNaT
  from .common import _NS_DTYPE, _TD_DTYPE, ensure_object, is_bool_dtype, is_complex_dtype, is_datetime64_dtype, is_datetime64tz_dtype, is_datetimelike, is_datetimelike_v_numeric, is_dtype_equal, is_extension_array_dtype, is_float_dtype, is_integer_dtype, is_object_dtype, is_period_dtype, is_scalar, is_string_dtype, is_string_like_dtype, is_timedelta64_dtype, needs_i8_conversion, pandas_dtype
  from .generic import ABCDatetimeArray, ABCExtensionArray, ABCGeneric, ABCIndexClass, ABCMultiIndex, ABCSeries, ABCTimedeltaArray
  from .inference import is_list_like
label_desc: Use image node_id 10 for calling a global function with example usage: _infer_fill_value(val) and returns: np, np, np, np