class_docstr: It is a combination of TransformEosLangPairDataset and ConcatDataset for multiple LangPairDataset datasets.
  Assume all datasets share the same src_eos, tgt_bos, left_pad_source and left_pad_target
code: def is_left_pad_target(self, datasets):
      def _left_pad_target(ds):
          if hasattr(ds, "left_pad_target"):
              return ds.left_pad_target
          if hasattr(ds, "dataset"):
              return _left_pad_target(ds.dataset)
          logger.warn(
              f"{type(ds)} has no left_pad_target, using default False"
          )
          return False
  
      left_pad_target = _left_pad_target(datasets[0])
      for ds in datasets:
          if left_pad_target != _left_pad_target(ds):
              raise ValueError(
                  "Different left_pad_target setting detected!"
              )
      return left_pad_target
  
file_path: fairseq/fairseq/data/transform_eos_concat_langpair_dataset.py
imports: import logging
  import torch
  from torch.utils.data.dataloader import default_collate
  from fairseq.data import ConcatDataset
label_desc: Use image node_id 5 for calling the TransformEosConcatLangPairDataset obj's underlying member method code with example usage: obj.is_left_pad_target(datasets) and returns: left_pad_target, False, ds, _left_pad_target