code: def run_module(uri, args, env_vars=None, name=DEFAULT_MODULE_NAME, cache=None, wait=True, capture_error=False):
      # type: (str, list, dict, str, bool, bool, bool) -> subprocess.Popen
      
      _warning_cache_deprecation(cache)
      env_vars = env_vars or {}
      env_vars = env_vars.copy()
  
      _files.download_and_extract(uri, name, _env.code_dir)
  
      prepare(_env.code_dir, name)
      install(_env.code_dir)
  
      _env.write_env_vars(env_vars)
  
      return run(name, args, env_vars, wait, capture_error)
docs: Download, prepare and executes a compressed tar file from S3 or provided directory as a module.
  
      SageMaker Python SDK saves the user provided scripts as compressed tar files in S3
      https://github.com/aws/sagemaker-python-sdk.
      This function downloads this compressed file, transforms it as a module, and executes it.
      Args:
          uri (str): the location of the module.
          args (list):  A list of program arguments.
          env_vars (dict): A map containing the environment variables to be written.
          name (str): name of the script or module.
          cache (bool): If True it will avoid downloading the module again, if already installed.
          wait (bool): If True run_module will wait for the user module to exit and check the exit code,
                       otherwise it will launch the user module with subprocess and return the process object.