class_docstr: Base class for input data adapter.
  In order to simplify the training code path, all the input data
  object will be converted to a `generator` if possible.
  The sample usage of this class is like:
  
  ```
  x = list(range(100))
  adapter_cls = [ArrayDataAdapter, ..., ListsOfScalarsDataAdapter]
  applicable_adapters = [cls for cls in adapter_cls if cls.can_handle(x)]
  if len(applicable_adapters) != 1:
    raise ValueError("Expect only one adapter class to handle the input")
  dataset = applicable_adapters[0](x).get_dataset()
  for data in dataset():
    # training
  ```
docstr: Get a function that returns a generator for the current DataAdapter.
  Note that the generator wrapped in the function will repeat for each epoch,
  so the steps for traversing it should be known.
  Returns:
    An function wrapping a generator.
docstr_tok: ["Get","a","function","that","returns","a","generator","for","the","current","DataAdapter",".","Note","that","the","generator","wrapped","in","the","function","will","repeat","for","each","epoch",",","so","the","steps","for","traversing","it","should","be","known",".","Returns",":","An","function","wrapping","a","generator","."]
code: def get_dataset(self):
      """Get a function that returns a generator for the current DataAdapter.
      Note that the generator wrapped in the function will repeat for each epoch,
      so the steps for traversing it should be known.
      Returns:
        An function wrapping a generator.
      """
      raise NotImplementedError
  
file_path: elegy/elegy/data/data_adapter.py
imports: import abc
  import typing
  import six
label_desc: Use image node_id 3 for calling the DataAdapter obj's underlying member method code with example usage: obj.get_dataset() without return types