class_docstr: An abstract class represening Dataset.
  Generally, all datasets should subclass it.
  All subclasses should overwrite :code:`__getitem__` and :code:`__len__`.
  
  Examples:
      .. code-block:: python
  
          from pgl.utils.data import Dataset
  
          class MyDataset(Dataset):
              def __init__(self):
                  self.data = list(range(0, 40))
  
              def __getitem__(self, idx):
                  return self.data[idx]
  
              def __len__(self):
                  return len(self.data)
code: def __getitem__(self, idx):
      raise NotImplementedError
  
imports: import os
  import sys
  import numpy
  import json
  import io
  from subprocess import Popen, PIPE
label_desc: Use image node_id 2 for calling the Dataset obj's underlying member method code with example usage: obj.__getitem__(idx) without return types