class_docstr: Mocks a mmcv runner and implements the same properties accessed by `LrUpdaterHook`.
  Instead, we get them from the PyTorchTrialContext.
class_docstr_tok: ["Mocks","a","mmcv","runner","and","implements","the","same","properties","accessed","by","`","LrUpdaterHook","`",".","Instead",",","we","get","them","from","the","PyTorchTrialContext","."]
code: def data_loader(self) -> Optional[DummyDataloader]:
      # The MMCV lr_updater uses runner.data_loader to get epoch length.
      # We will use a fake data_loader here to return the epoch length.
      if self._data_loader is None:
          self._data_loader = DummyDataloader(self.context._epoch_len)
      return self._data_loader
  
imports: from typing import Any, Dict, Optional, cast
  import mmcv
  import mmcv.runner.hooks
  import determined.pytorch
label_desc: Use image node_id 3 for calling the FakeRunner obj's underlying member method code with example usage: obj.data_loader() and returns: self