code: def save_dataset_to_disk(
      save_dir: str,
      train: "dc.data.DiskDataset",
      valid: "dc.data.DiskDataset",
      test: "dc.data.DiskDataset",
      transformers: List["dc.trans.Transformer"],
  ):
      """Utility used by MoleculeNet to save train/valid/test datasets.
  
      This utility function saves a train/valid/test split of a dataset along
      with transformers in the same directory. The saved datasets will take the
      following structure:
      save_dir/
        |
        ---> train_dir/
        |
        ---> valid_dir/
        |
        ---> test_dir/
        |
        ---> transformers.pkl
  
      Parameters
      ----------
      save_dir: str
          Directory name to save datasets to.
      train: DiskDataset
          Training dataset to save.
      valid: DiskDataset
          Validation dataset to save.
      test: DiskDataset
          Test dataset to save.
      transformers: List[Transformer]
          List of transformers to save to disk.
  
      See Also
      --------
      load_dataset_from_disk
      """
      train_dir = os.path.join(save_dir, "train_dir")
      valid_dir = os.path.join(save_dir, "valid_dir")
      test_dir = os.path.join(save_dir, "test_dir")
      train.move(train_dir)
      valid.move(valid_dir)
      test.move(test_dir)
      save_transformers(save_dir, transformers)
  
imports: import joblib
  import gzip
  import pickle
  import os
  import tempfile
  import tarfile
  import zipfile
  import logging
  from urllib.request import urlretrieve
  from typing import Any, Iterator, List, Optional, Tuple, Union, cast, IO
  import pandas
  import numpy
  import deepchem
label_desc: Use image node_id 17 for calling a global function with example usage: save_dataset_to_disk(save_dir, train, valid, test, transformers) without return types