class_docstr: Transformation groups for Avalanche datasets.
  
  TransformGroups supports preprocessing and augmentation pipelines for
  Avalanche datasets. Transfomations are separated into groups (e.g. `train`
  transforms and `test` transforms), that can be easily switched using the
  `with_transform` method.
class_docstr_tok: ["Transformation","groups","for","Avalanche","datasets",".","TransformGroups","supports","preprocessing","and","augmentation","pipelines","for","Avalanche","datasets",".","Transfomations","are","separated","into","groups","(","e.g",".","`","train","`","transforms","and","`","test","`","transforms",")",",","that","can","be","easily","switched","using","the","`","with_transform","`","method","."]
code: def __str__(self):
      res = ""
      for k, v in self.transform_groups.items():
          if len(res) > 0:
              res += "\n"
          res += f"- {k}: {v}"
      res = f"current_group: '{self.current_group}'\n" + res
      return res
  
imports: from collections import defaultdict
  from functools import partial
  from typing import Any, Dict, List, Mapping, Optional, Tuple, Union, Callable, Sequence
  from typing_extensions import Protocol
  from avalanche.benchmarks.utils.transforms import MultiParamCompose, TupleTransform, MultiParamTransform
label_desc: Use image node_id 8 for calling the TransformGroups obj's underlying member method code with example usage: obj.__str__() and returns: res