code: def __init__(
      self,
      *,
      input_table_spec: Optional[TableSpec] = None,
      reward_options: Optional[RewardOptions] = None,
      setup_data: Optional[Dict[str, bytes]] = None,
      saved_setup_data: Optional[Dict[str, bytes]] = None,
      reader_options: Optional[ReaderOptions] = None,
      resource_options: Optional[ResourceOptions] = None,
      model_manager=None,
  ):
      super().__init__()
      self.input_table_spec = input_table_spec
      self.reward_options = reward_options or RewardOptions()
      self.reader_options = reader_options or ReaderOptions()
      self.resource_options = resource_options or ResourceOptions(gpu=0)
      self._model_manager = model_manager
      self.setup_data = setup_data
      self.saved_setup_data = saved_setup_data or {}
  
      self._setup_done = False
      self._num_train_data_loader_calls = 0
      self._num_val_data_loader_calls = 0
      self._num_test_data_loader_calls = 0
  
imports: import abc
  import logging
  import pickle
  from typing import Dict, List, NamedTuple, Optional, Tuple
  from reagent.core.parameters import NormalizationData
  from reagent.data.data_fetcher import DataFetcher
  from reagent.data.oss_data_fetcher import OssDataFetcher
  from reagent.preprocessing.batch_preprocessor import BatchPreprocessor
  from reagent.workflow.types import Dataset, ReaderOptions, ResourceOptions, RewardOptions, TableSpec
  from .reagent_data_module import ReAgentDataModule
label_desc: Use image node_id 1 to create a new ManualDataModule object from inherited base classes: ReAgentDataModule with example: obj = ManualDataModule()