class_docstr: Handles iterating over epoch-level `tp.Iterator` objects.
class_docstr_tok: ["Handles","iterating","over","epoch-level","`","tp.Iterator","`","objects","."]
docstr: Yields steps for the current epoch.
docstr_tok: ["Yields","steps","for","the","current","epoch","."]
code: def steps(self):
      """Yields steps for the current epoch."""
      self._current_step = 0
      # `self._inferred_steps` can be changed by `catch_stop_iteration`.
      while (
          self._inferred_steps is None
          or self._current_step < self._inferred_steps
      ):
          if self._insufficient_data:  # Set by `catch_stop_iteration`.
              break
          yield self._current_step
          self._current_step += 1
  
file_path: elegy/elegy/data/data_handler.py
imports: import contextlib
  import logging
  from .array_adapter import ArrayDataAdapter
  from .dataset import DataLoaderAdapter
  from .generator_adapter import GeneratorDataAdapter
  from .list_adapter import ListsOfScalarsDataAdapter
label_desc: Use image node_id 4 for calling the DataHandler obj's underlying member method code with example usage: obj.steps() without return types