code: def __init__(
      self,
      train_dataset,
      eval_dataset,
      batch_preprocessor,
      reader_options,
  ):
      super().__init__()
      self.train_dataset = train_dataset
      self.eval_dataset = eval_dataset
      self.batch_preprocessor = batch_preprocessor
      self.reader_options = reader_options
  
imports: import logging
  from typing import Dict, List, Optional
  import pytorch_lightning
  import torch
  from petastorm import make_batch_reader
  from petastorm.pytorch import DataLoader, decimal_friendly_collate
  from reagent.core.oss_tensorboard_logger import OssTensorboardLogger
  from reagent.data.spark_utils import get_spark_session
  from reagent.preprocessing.batch_preprocessor import BatchPreprocessor
  from reagent.training import StoppingEpochCallback
  from reagent.training.reagent_lightning_module import has_test_step_override
  from .types import Dataset, ReaderOptions, ResourceOptions
label_desc: Use image node_id 1 to create a new PetastormLightningDataModule object from inherited base classes: pl with example: obj = PetastormLightningDataModule(train_dataset, eval_dataset, batch_preprocessor, reader_options)