class_docstr: Dataset version MAJOR.MINOR.PATCH.
docstr: Version init.
  
  Args:
    version: string. Eg: "1.2.3".
    experiments: dict of experiments. See Experiment.
    tfds_version_to_prepare: string, defaults to None. If set, indicates that
      current version of TFDS cannot be used to `download_and_prepare` the
      dataset, but that TFDS at version {tfds_version_to_prepare} should be
      used instead.
docstr_tok: ["Version","init",".","Args",":","version",":","string",".","Eg",":","``","1.2.3","''",".","experiments",":","dict","of","experiments",".","See","Experiment",".","tfds_version_to_prepare",":","string",",","defaults","to","None",".","If","set",",","indicates","that","current","version","of","TFDS","can","not","be","used","to","`","download_and_prepare","`","the","dataset",",","but","that","TFDS","at","version","{","tfds_version_to_prepare","}","should","be","used","instead","."]
code: def __init__(
      self,
      version: Union[Version, str],
      experiments=None,
      tfds_version_to_prepare=None,
  ):
      """Version init.
  
      Args:
        version: string. Eg: "1.2.3".
        experiments: dict of experiments. See Experiment.
        tfds_version_to_prepare: string, defaults to None. If set, indicates that
          current version of TFDS cannot be used to `download_and_prepare` the
          dataset, but that TFDS at version {tfds_version_to_prepare} should be
          used instead.
      """
      if isinstance(version, Version):
          version_str = str(version)
          experiments = experiments or version._experiments
          tfds_version_to_prepare = (
              tfds_version_to_prepare or version.tfds_version_to_prepare
          )
      else:
          version_str = version
      self._experiments = self._DEFAULT_EXPERIMENTS.copy()
      self.tfds_version_to_prepare = tfds_version_to_prepare
      if experiments:
          if isinstance(experiments, str):
              raise ValueError(
                  f"Invalid Version('{version}', '{experiments}'). Description is "
                  "deprecated. RELEASE_NOTES should be used instead."
              )
          self._experiments.update(experiments)
      self.major, self.minor, self.patch = _str_to_version(version_str)
  
imports: from __future__ import annotations
  import enum
  import re
  from typing import List, Tuple, Union
  from etils import epath
label_desc: Use image node_id 1 to create a new Version object  with example: obj = Version(version, experiments, tfds_version_to_prepare)