code: def _invoke(self, argv, stream=sys.stdout, resubmit_failed=False):
          
          args = self._run_argparser(argv)
  
          if args.action not in ACTIONS:
              sys.stderr.write(
                  "Unrecognized action %s, options are %s\n" % (args.action, ACTIONS))
  
          if args.action == 'skip':
              return JobStatus.no_job
          elif args.action in ['run', 'resubmit', 'check_status', 'config']:
              self._job_configs = self.build_job_configs(args.__dict__)
  
          self._interface._dry_run = args.dry_run
  
          if args.action == 'run':
              status_vect = self.run_jobs(stream, resubmit_failed=resubmit_failed)
          elif args.action == 'resubmit':
              status_vect = self.resubmit(stream, resubmit_failed=resubmit_failed)
          elif args.action == 'check_status':
              self._build_job_dict()
              status_vect = self.check_status(stream)
          elif args.action == 'config':
              self._build_job_dict()
              status_vect = JobStatusVector()
              status_vect[JobStatus.done] += 1
  
          return status_vect
docs: Invoke this object to preform a particular action
  
          Parameters
          ----------
  
          argv : list
              List of command line arguments, passed to helper classes
  
          stream : `file`
              Stream that this function will print to,
              must have 'write' function.
  
          resubmit_failed : bool
              Resubmit failed jobs.
  
          Returns
          -------
          status_vect : `JobStatusVector`
              Vector that summarize the number of jobs in various states.