code: def __init__(
      self, has_val: bool, has_test: bool, **kwargs: Any
  ) -> None:
      super().__init__()
  
      if no_pytorch_lightning:
          raise ModuleNotFoundError(
              "No module named 'pytorch_lightning' found on this machine. "
              "Run 'pip install pytorch_lightning' to install the library."
          )
  
      if not has_val:
          self.val_dataloader = None  # type: ignore
  
      if not has_test:
          self.test_dataloader = None  # type: ignore
  
      kwargs.setdefault("batch_size", 1)
      kwargs.setdefault("num_workers", 0)
      kwargs.setdefault("pin_memory", True)
      kwargs.setdefault(
          "persistent_workers", kwargs.get("num_workers", 0) > 0
      )
  
      if "shuffle" in kwargs:
          warnings.warn(
              f"The 'shuffle={kwargs['shuffle']}' option is "
              f"ignored in '{self.__class__.__name__}'. Remove it "
              f"from the argument list to disable this warning"
          )
          del kwargs["shuffle"]
  
      self.kwargs = kwargs
  
imports: import copy
  import inspect
  import warnings
  from typing import Any, Dict, Optional, Tuple, Type, Union
  import torch
  from torch_geometric.data import Data, Dataset, HeteroData
  from torch_geometric.loader import DataLoader, LinkLoader, NodeLoader
  from torch_geometric.sampler import BaseSampler, NeighborSampler
  from torch_geometric.typing import InputEdges, InputNodes, OptTensor
label_desc: Use image node_id 1 to create a new LightningDataModule object from inherited base classes: PLLightningDataModule with example: obj = LightningDataModule(has_val, has_test)