class_docstr: Base implementation of a Continual Learning benchmark instance.
  A Continual Learning benchmark instance is defined by a set of streams of
  experiences (batches or tasks depending on the terminology). Each
  experience contains the training (or test, or validation, ...) data that
  becomes available at a certain time instant.
  
  Experiences are usually defined in children classes, with this class
  serving as the more general implementation. This class handles the most
  simple type of assignment: each stream is defined as a list of experiences,
  each experience is defined by a dataset.
  
  Defining the "train" and "test" streams is mandatory. This class supports
  custom streams as well. Custom streams can be accessed by using the
  `streamname_stream` field of the created instance.
  
  The name of custom streams can only contain letters, numbers or the "_"
  character and must not start with a number.
docstr: A function used to check the input stream definitions.
  
  This function should returns the adapted definition in which the
  missing optional fields are filled. If the input definition doesn't
  follow the expected structure, a `ValueError` will be raised.
  
  :param stream_definitions: The input stream definitions.
  :return: The checked and adapted stream definitions.
code: def _check_stream_definitions(
      stream_definitions: TStreamsUserDict,
  ) -> Dict[str, StreamDef]:
      """
      A function used to check the input stream definitions.
  
      This function should returns the adapted definition in which the
      missing optional fields are filled. If the input definition doesn't
      follow the expected structure, a `ValueError` will be raised.
  
      :param stream_definitions: The input stream definitions.
      :return: The checked and adapted stream definitions.
      """
      streams_defs = dict()
  
      if "train" not in stream_definitions:
          raise ValueError("No train stream found!")
  
      if "test" not in stream_definitions:
          raise ValueError("No test stream found!")
  
      for stream_name, stream_user_def in stream_definitions.items():
          DatasetScenario._check_stream_name(stream_name)
          stream_def = DatasetScenario._check_and_adapt_user_stream_def(
              stream_user_def, stream_name
          )
          streams_defs[stream_name] = stream_def
  
      return streams_defs
  
imports: from abc import ABC, abstractmethod
  from dataclasses import dataclass
  import re
  from typing import Generic, TypeVar, Union, Sequence, Callable, Optional, Dict, Any, Iterable, List, Set, Tuple, Mapping, TYPE_CHECKING
  from .None import DatasetExperience
  from ..generic_scenario import CLScenario, CLExperience, CLStream, SequenceCLStream
  from .lazy_dataset_sequence import LazyDatasetSequence
  from avalanche.benchmarks.utils import AvalancheDataset
  from torch.utils.data.dataset import Dataset
label_desc: Use image node_id 7 for calling the DatasetScenario obj's underlying member method code with example usage: obj._check_stream_definitions(stream_definitions) and returns: streams_defs