code: def _download_dataset():
      urllib.request.urlretrieve(
          "https://mmlspark.blob.core.windows.net/publicwasb/17flowers.tgz",
          dataset_dir + "17flowers.tgz",
      )
      if os.path.exists(dataset_dir + "jpg"):
          shutil.rmtree(dataset_dir + "jpg")
  
      command = "tar -xzf {}17flowers.tgz -C {} \n".format(
          dataset_dir, dataset_dir
      )
      subprocess.run(command.split(), stdout=subprocess.PIPE)
      os.remove(dataset_dir + "17flowers.tgz")
      files = [
          join(dp, f)
          for dp, dn, filenames in os.walk(dataset_dir + "jpg")
          for f in filenames
          if os.path.splitext(f)[1] == ".jpg"
      ]
      assert len(files) == 1360
      np.random.shuffle(files)
      train_files, test_files = np.split(
          np.array(files), [int(len(files) * 0.75)]
      )
      train_dir = dataset_dir + "jpg{}train".format(delimiter)
      test_dir = dataset_dir + "jpg{}test".format(delimiter)
      if not os.path.exists(train_dir):
          os.makedirs(train_dir)
      if not os.path.exists(test_dir):
          os.makedirs(test_dir)
  
      for name in train_files:
          path, image = (
              delimiter.join(name.split(delimiter)[:-1]),
              name.split(delimiter)[-1],
          )
          shutil.move(name, delimiter.join([path, "train", image]))
  
      for name in test_files:
          path, image = (
              delimiter.join(name.split(delimiter)[:-1]),
              name.split(delimiter)[-1],
          )
          shutil.move(name, delimiter.join([path, "test", image]))
  
file_path: SynapseML/deep-learning/src/test/python/synapsemltest/dl/conftest.py
imports: import os
  import shutil
  import subprocess
  import urllib
  from os.path import join
  import numpy
  import pandas
  import pytest
  import torchvision.transforms
  from pyspark.ml.feature import StringIndexer
label_desc: Use image node_id 1 for calling a global function with example usage: _download_dataset() without return types