code: def _run_link(self, stream=sys.stdout, dry_run=False,
                    stage_files=True, resubmit_failed=False):
          
          if resubmit_failed:
              self.args['action'] = 'resubmit'
          argv = self._make_argv()
          if dry_run:
              argv.append('--dry_run')
          self._invoke(argv, stream, resubmit_failed=resubmit_failed)
docs: Internal function that actually runs this link.
  
          This checks if input and output files are present.
  
          If input files are missing this will raise `OSError` if dry_run is False
          If all output files are present this will skip execution.
  
          Parameters
          -----------
          stream : `file`
              Stream that this `Link` will print to,
              must have 'write' function.
  
          dry_run : bool
              Print command but do not run it.
  
          stage_files : bool
              Stage files to and from the scratch area.
  
          resubmit_failed : bool
              Resubmit failed jobs.