code: def submitTaskWithFiles(
      self, clientCodeFile, args, files={}, job_id=None
  ):
      old_cwd = os.getcwd()
      cwd = os.path.dirname(os.path.realpath(__file__))
      os.chdir(cwd)
  
      if job_id is not None:
          experiment_name = self.project_name + "_" + str(job_id)
      else:
          experiment_name = self.project_name + "_" + str(uuid.uuid4())
  
      tmpdir = tempfile.gettempdir()
      args_file = os.path.join(tmpdir, experiment_name + "_args.pkl")
  
      workspace_orig = os.getcwd()
      ignore_arg = ""
      ignore_filepath = os.path.join(workspace_orig, ".studioml_ignore")
      if os.path.exists(ignore_filepath) and not os.path.isdir(
          ignore_filepath
      ):
          ignore_arg = "--exclude-from=%s" % ignore_filepath
  
      workspace_new = fs_tracker.get_artifact_cache(
          "workspace", experiment_name
      )
      rsync_cp(workspace_orig, workspace_new, ignore_arg, self.logger)
      distpath = os.path.join(old_cwd, "dist")
      if os.path.exists(distpath):
          self.logger.info(
              "dist folder found at {}, " + "copying into workspace"
          )
          rsync_cp(distpath, os.path.join(workspace_new, "dist"))
  
      self.logger.info("Created workspace " + workspace_new)
  
      artifacts = self._create_artifacts(
          clientCodeFile, args_file, workspace_new, files
      )
  
      with open(args_file, "wb") as f:
          f.write(pickle.dumps(args, protocol=2))
  
      experiment = create_experiment(
          "completion_service_client.py",
          [self.config["verbose"]],
          experiment_name=experiment_name,
          project=self.project_name,
          artifacts=artifacts,
          resources_needed=self.resources_needed,
      )
  
      tic = time.time()
      experiment_submitter.submit_experiments(
          [experiment],
          config=self.config,
          logger=self.logger,
          queue=self.queue,
      )
  
      self.submitted[experiment.key] = time.time()
      os.chdir(old_cwd)
      toc = time.time()
      self.logger.info(
          "Submitted experiment "
          + experiment.key
          + " in "
          + str(toc - tic)
          + " s"
      )
  
      return experiment_name
  
imports: import os
  import subprocess
  import uuid
  import pickle
  import tempfile
  import re
  import six
  import time
  from studio import experiment_submitter, model, fs_tracker, logs
  from studio.util import rsync_cp, parse_verbosity
  from studio.experiment import create_experiment
label_desc: Use image node_id 5 for calling the CompletionService obj's underlying member method code with example usage: obj.submitTaskWithFiles(clientCodeFile, args, files, job_id) and returns: experiment_name