code: def check_dflist_panel(obj, return_metadata=False, var_name="obj"):
      if not isinstance(obj, list):
          msg = f"{var_name} must be list of pd.DataFrame, found {type(obj)}"
          return _ret(False, msg, None, return_metadata)
  
      n = len(obj)
  
      bad_inds = [
          i for i in range(n) if not isinstance(obj[i], pd.DataFrame)
      ]
  
      if len(bad_inds) > 0:
          msg = f"{var_name}[i] must pd.DataFrame, but found other types at i={bad_inds}"
          return _ret(False, msg, None, return_metadata)
  
      check_res = [
          check_pddataframe_series(s, return_metadata=True) for s in obj
      ]
      bad_inds = [i for i in range(n) if not check_res[i][0]]
  
      if len(bad_inds) > 0:
          msg = f"{var_name}[i] must be Series of mtype pd.DataFrame, not at i={bad_inds}"
          return _ret(False, msg, None, return_metadata)
  
      metadata = dict()
      if _req("is_univariate", return_metadata):
          metadata["is_univariate"] = np.all(
              [res[2]["is_univariate"] for res in check_res]
          )
      if _req("is_equally_spaced", return_metadata):
          metadata["is_equally_spaced"] = np.all(
              [res[2]["is_equally_spaced"] for res in check_res]
          )
      if _req("is_equal_length", return_metadata):
          metadata["is_equal_length"] = _list_all_equal(
              [len(s) for s in obj]
          )
      if _req("is_empty", return_metadata):
          metadata["is_empty"] = np.any(
              [res[2]["is_empty"] for res in check_res]
          )
      if _req("has_nans", return_metadata):
          metadata["has_nans"] = np.any(
              [res[2]["has_nans"] for res in check_res]
          )
      if _req("is_one_series", return_metadata):
          metadata["is_one_series"] = n == 1
      if _req("n_panels", return_metadata):
          metadata["n_panels"] = 1
      if _req("is_one_panel", return_metadata):
          metadata["is_one_panel"] = True
      if _req("n_instances", return_metadata):
          metadata["n_instances"] = n
      if _req("n_features", return_metadata):
          metadata["n_features"] = len(obj[0].columns)
      if _req("feature_names", return_metadata):
          metadata["feature_names"] = obj[0].columns.to_list()
  
      return _ret(True, None, metadata, return_metadata)
  
file_path: sktime/sktime/datatypes/_panel/_check.py
imports: import numpy
  import pandas
  from pandas.core.dtypes.cast import is_nested_object
  from sktime.datatypes._common import _req, _ret
  from sktime.datatypes._series._check import _index_equally_spaced, check_pddataframe_series
  from sktime.utils.validation._dependencies import _check_soft_dependencies
  from sktime.utils.validation.series import is_in_valid_index_types, is_integer_index
label_desc: Use image node_id 3 for calling a global function with example usage: check_dflist_panel(obj, return_metadata, var_name) and returns: _ret, _ret, _ret, _ret