class_docstr: Base class for loading datasets.
  
  Note that you should never instantiate the :class:`Dataset` class directly
  (same goes for its derived classes), but instead use one of the three
  available methods for loading datasets.
docstr: Load a built-in dataset.
  
  If the dataset has not already been loaded, it will be downloaded and
  saved. You will have to split your dataset using the :meth:`split
  <DatasetAutoFolds.split>` method. See an example in the :ref:`User
  Guide <cross_validate_example>`.
  
  Args:
      name(:obj:`string`): The name of the built-in dataset to load.
          Accepted values are 'ml-100k', 'ml-1m', and 'jester'.
          Default is 'ml-100k'.
      prompt(:obj:`bool`): Prompt before downloading if dataset is not
          already on disk.
          Default is True.
  
  Returns:
      A :obj:`Dataset` object.
  
  Raises:
      ValueError: If the ``name`` parameter is incorrect.
docstr_tok: ["Load","a","built-in","dataset",".","If","the","dataset","has","not","already","been","loaded",",","it","will","be","downloaded","and","saved",".","You","will","have","to","split","your","dataset","using","the",":","meth",":","`","split","<","DatasetAutoFolds.split",">","`","method",".","See","an","example","in","the",":","ref",":","`","User","Guide","<","cross_validate_example",">","`",".","Args",":","name","(",":","obj",":","`","string","`",")",":","The","name","of","the","built-in","dataset","to","load",".","Accepted","values","are","'ml-100k","'",",","'ml-1m","'",",","and","'jester","'",".","Default","is","'ml-100k","'",".","prompt","(",":","obj",":","`","bool","`",")",":","Prompt","before","downloading","if","dataset","is","not","already","on","disk",".","Default","is","True",".","Returns",":","A",":","obj",":","`","Dataset","`","object",".","Raises",":","ValueError",":","If","the","``","name","``","parameter","is","incorrect","."]
code: def load_builtin(cls, name="ml-100k", prompt=True):
      """Load a built-in dataset.
  
      If the dataset has not already been loaded, it will be downloaded and
      saved. You will have to split your dataset using the :meth:`split
      <DatasetAutoFolds.split>` method. See an example in the :ref:`User
      Guide <cross_validate_example>`.
  
      Args:
          name(:obj:`string`): The name of the built-in dataset to load.
              Accepted values are 'ml-100k', 'ml-1m', and 'jester'.
              Default is 'ml-100k'.
          prompt(:obj:`bool`): Prompt before downloading if dataset is not
              already on disk.
              Default is True.
  
      Returns:
          A :obj:`Dataset` object.
  
      Raises:
          ValueError: If the ``name`` parameter is incorrect.
      """
  
      try:
          dataset = BUILTIN_DATASETS[name]
      except KeyError:
          raise ValueError(
              "unknown dataset "
              + name
              + ". Accepted values are "
              + ", ".join(BUILTIN_DATASETS.keys())
              + "."
          )
  
      # if dataset does not exist, offer to download it
      if not os.path.isfile(dataset.path):
          answered = not prompt
          while not answered:
              print(
                  "Dataset "
                  + name
                  + " could not be found. Do you want "
                  "to download it? [Y/n] ",
                  end="",
              )
              choice = input().lower()
  
              if choice in [
                  "yes",
                  "y",
                  "",
                  "omg this is so nice of you!!",
              ]:
                  answered = True
              elif choice in [
                  "no",
                  "n",
                  "hell no why would i want that?!",
              ]:
                  answered = True
                  print("Ok then, I'm out!")
                  sys.exit()
  
          download_builtin_dataset(name)
  
      reader = Reader(**dataset.reader_params)
  
      return cls.load_from_file(file_path=dataset.path, reader=reader)
  
imports: import itertools
  import os
  import sys
  from collections import defaultdict
  from .builtin_datasets import BUILTIN_DATASETS, download_builtin_dataset
  from .reader import Reader
  from .trainset import Trainset
label_desc: Use image node_id 2 for calling the Dataset obj's underlying member method code with example usage: obj.load_builtin(cls, name, prompt) and returns: cls