class_docstr: This class is used to return directly the `dataloader_iter` to the ``LightningModule`` training_step for users
  to implement their own pre-fetching logic. This feature can be activated as follows:
  
  Example::
  
      Class MyModel(LightningModule):
          def training_step(self, dataloader_iter: Iterator) -> None:
              # it is the user responsibility to fetch and move the batch to the right device.
              batch, batch_idx, dataloader_idx = next(dataloader_iter)
              batch = batch.to(self.device)
              ...
class_docstr_tok: ["This","class","is","used","to","return","directly","the","`","dataloader_iter","`","to","the","``","LightningModule","``","training_step","for","users","to","implement","their","own","pre-fetching","logic",".","This","feature","can","be","activated","as","follows",":","Example",":",":","Class","MyModel","(","LightningModule",")",":","def","training_step","(","self",",","dataloader_iter",":","Iterator",")","-",">","None",":","#","it","is","the","user","responsibility","to","fetch","and","move","the","batch","to","the","right","device",".","batch",",","batch_idx",",","dataloader_idx","=","next","(","dataloader_iter",")","batch","=","batch.to","(","self.device",")","..."]
code: def __iter__(self) -> "_DataLoaderIterDataFetcher":
      super().__iter__()
      self.iterator_wrapper = iter(_DataFetcherWrapper(self))
      return self
  
imports: from typing import Any, Iterator, List, Optional
  from typing_extensions import override
  from lightning.fabric.utilities.data import sized_len
  from lightning.pytorch.utilities.combined_loader import _ITERATOR_RETURN, CombinedLoader
  from lightning.pytorch.utilities.exceptions import MisconfigurationException
label_desc: Use image node_id 2 for calling the _DataLoaderIterDataFetcher obj's underlying member method code with example usage: obj.__iter__() and returns: self