class_docstr: Return the role and logical type of each column.
  
  Parameters
  ----------
  n_top_columns : int , optional
      amount of columns to show ordered by feature importance (date, index, label are first)
docstr: Run check.
  
  Returns
  -------
  CheckResult
      value is dictionary of a column and its role and logical type.
      display a table of the dictionary.
docstr_tok: ["Run","check",".","Returns","--","--","--","-","CheckResult","value","is","dictionary","of","a","column","and","its","role","and","logical","type",".","display","a","table","of","the","dictionary","."]
code: def run_logic(self, context: Context, dataset_kind) -> CheckResult:
      """Run check.
  
      Returns
      -------
      CheckResult
          value is dictionary of a column and its role and logical type.
          display a table of the dictionary.
      """
      dataset = context.get_data_by_kind(dataset_kind)
      columns_info = dataset.columns_info
      columns_info = column_importance_sorter_dict(
          columns_info, dataset, context.feature_importance, None
      )
  
      columns_info_to_display = dict(
          list(columns_info.items())[: self.n_top_columns]
      )
  
      df = pd.DataFrame.from_dict(
          columns_info_to_display, orient="index", columns=["role"]
      )
      df = df.transpose()
  
      return CheckResult(
          columns_info,
          header="Columns Info",
          display=[N_TOP_MESSAGE % self.n_top_columns, df],
      )
  
file_path: deepchecks/deepchecks/tabular/checks/data_integrity/columns_info.py
imports: import pandas
  from deepchecks.core import CheckResult
  from deepchecks.tabular import Context, SingleDatasetCheck
  from deepchecks.tabular.utils.feature_importance import N_TOP_MESSAGE, column_importance_sorter_dict
label_desc: Use image node_id 2 for calling the ColumnsInfo obj's underlying member method code with example usage: obj.run_logic(context, dataset_kind) and returns: CheckResult