class_docstr: Base class to define a dataset collection.
  
  Subclasses should overwrite `info` to return populated DatasetCollectionInfo.
  
  Subclasses should also overwrite `datasets` to return a dictionary of versions
  to the datasets included in that collection's version.
class_docstr_tok: ["Base","class","to","define","a","dataset","collection",".","Subclasses","should","overwrite","`","info","`","to","return","populated","DatasetCollectionInfo",".","Subclasses","should","also","overwrite","`","datasets","`","to","return","a","dictionary","of","versions","to","the","datasets","included","in","that","collection","'s","version","."]
code: def __repr__(self):
      return f"DatasetCollection(info={self.info}, datasets={self.datasets})"
  
imports: import dataclasses
  import inspect
  from typing import Any, List, Mapping, Optional, Type, Union
  from etils import epath
  from tensorflow_datasets.core import naming
  from tensorflow_datasets.core import registered
  from tensorflow_datasets.core.utils import version
label_desc: Use image node_id 3 for calling the DatasetCollection obj's underlying member method code with example usage: obj.__repr__() and returns: str, self, str, self, str