docstr: DGL PCQM4Mv2 dataset object
      - root (str): the dataset folder will be located at root/pcqm4m_kddcup2021
      - smiles2graph (callable): A callable function that converts a SMILES string into a graph object
          * The default smiles2graph requires rdkit to be installed
docstr_tok: ["DGL","PCQM4Mv2","dataset","object","-","root","(","str",")",":","the","dataset","folder","will","be","located","at","root\/pcqm4m_kddcup2021","-","smiles2graph","(","callable",")",":","A","callable","function","that","converts","a","SMILES","string","into","a","graph","object","*","The","default","smiles2graph","requires","rdkit","to","be","installed"]
code: def __init__(self, root="dataset", smiles2graph=smiles2graph):
      """
      DGL PCQM4Mv2 dataset object
          - root (str): the dataset folder will be located at root/pcqm4m_kddcup2021
          - smiles2graph (callable): A callable function that converts a SMILES string into a graph object
              * The default smiles2graph requires rdkit to be installed
      """
  
      self.original_root = root
      self.smiles2graph = smiles2graph
      self.folder = osp.join(root, "pcqm4m-v2")
      self.version = 1
  
      # Old url hosted at Stanford
      # md5sum: 65b742bafca5670be4497499db7d361b
      # self.url = f'http://ogb-data.stanford.edu/data/lsc/pcqm4m-v2.zip'
      # New url hosted by DGL team at AWS--much faster to download
      self.url = "https://dgl-data.s3-accelerate.amazonaws.com/dataset/OGB-LSC/pcqm4m-v2.zip"
  
      # check version and update if necessary
      if osp.isdir(self.folder) and (
          not osp.exists(
              osp.join(self.folder, f"RELEASE_v{self.version}.txt")
          )
      ):
          print("PCQM4Mv2 dataset has been updated.")
          if (
              input("Will you update the dataset now? (y/N)\n").lower()
              == "y"
          ):
              shutil.rmtree(self.folder)
  
      super(DglPCQM4Mv2Dataset, self).__init__()
  
      # Prepare everything.
      # download if there is no raw file
      # preprocess if there is no processed file
      # load data if processed file is found.
      self.prepare_graph()
  
imports: import os
  import os.path
  import shutil
  from ogb.utils import smiles2graph
  from ogb.utils.torch_util import replace_numpy_with_torchtensor
  from ogb.utils.url import decide_download, download_url, extract_zip
  import pandas
  import numpy
  from dgl.data.utils import load_graphs, save_graphs, Subset
  import dgl
  from tqdm.auto import tqdm
  import torch
label_desc: Use image node_id 1 to create a new DglPCQM4Mv2Dataset object from inherited base classes: object with example: obj = DglPCQM4Mv2Dataset(root, smiles2graph)