code: def maybe_download(self, data_dir, source_url):
      if not os.path.isdir(data_dir):
          os.mkdir(data_dir)
      out_file_names = [
          os.path.join(data_dir, single_file)
          for single_file in self.origin_files
      ]
      if not self.check_file(out_file_names):
          print("Downloading data from: {}".format(source_url))
          self.download_data(source_url, data_dir)
      return data_dir
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import shutil
  import sys
  import tf_euler
  from euler.tools.generate_euler_data import EulerGenerator
label_desc: Use image node_id 5 for calling the DataSet obj's underlying member method code with example usage: obj.maybe_download(data_dir, source_url) and returns: data_dir