code: def _make_columns(
      specs: TreeDict[tf.TypeSpec],
      ds_info: Optional[dataset_info.DatasetInfo],
  ) -> List[ColumnInfo]:
      """Extract the columns info of the `panda.DataFrame`."""
      return [
          ColumnInfo.from_spec(path, ds_info)
          for path, _ in py_utils.flatten_with_path(specs)
      ]
  
file_path: datasets/tensorflow_datasets/core/as_dataframe.py
imports: from __future__ import annotations
  import dataclasses
  import typing
  from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  import numpy
  from tensorflow_datasets.core import dataset_info
  from tensorflow_datasets.core import dataset_utils
  from tensorflow_datasets.core import features
  from tensorflow_datasets.core import lazy_imports_lib
  from tensorflow_datasets.core.utils import py_utils
  from tensorflow_datasets.core.utils import type_utils
  from tensorflow_datasets.core.utils.lazy_imports_utils import pandas
  from tensorflow_datasets.core.utils.lazy_imports_utils import tensorflow
label_desc: Use image node_id 2 for calling a global function with example usage: _make_columns(specs, ds_info) and returns: unknown