code: def _flatdata_repr(dataset, indent=0):
      """Return the string representation of the dataset.
      Shows the underlying dataset tree.
      """
      from avalanche.benchmarks.utils.data import _FlatDataWithTransform
  
      if isinstance(dataset, FlatData):
          ss = dataset._indices is not None
          cc = len(dataset._datasets) != 1
          cf = dataset._can_flatten
          s = (
              "\t" * indent
              + f"{dataset.__class__.__name__} (len={len(dataset)},subset={ss},"
              f"cat={cc},cf={cf})\n"
          )
          if isinstance(dataset, _FlatDataWithTransform):
              s = s[:-2] + (
                  f",transform_groups={dataset._transform_groups},"
                  f"frozen_transform_groups={dataset._frozen_transform_groups})\n"
              )
          for dd in dataset._datasets:
              s += _flatdata_repr(dd, indent + 1)
          return s
      else:
          return (
              "\t" * indent + f"{dataset.__class__.__name__} "
              f"(len={len(dataset)})\n"
          )
  
imports: import bisect
  import sys
  import numpy
  from avalanche.benchmarks.utils.dataset_utils import slice_alike_object_to_indices
  from typing import Iterable, List, Optional, Sequence, Tuple, TypeVar, Union, overload
  from torch.utils.data import ConcatDataset
  import itertools
  from avalanche.benchmarks.utils.dataset_definitions import IDataset
label_desc: Use image node_id 6 for calling a global function with example usage: _flatdata_repr(dataset, indent) and returns: s, unknown