def main(cl_args=None): parser = _make_arg_parser() options = parser.parse_args(cl_args) runner_alias = options.runner or _DEFAULT_RUNNER runner_class = _runner_class(runner_alias) if options.help or not options.script_or_jar: _print_help(options, runner_class) sys.exit(0) MRJob.set_up_logging( quiet=options.quiet, verbose=options.verbose, ) kwargs = _get_runner_opt_kwargs(options, runner_class) kwargs.update(_HARD_CODED_OPTS) kwargs['input_paths'] = [os.devnull] step = _get_step(options, parser, cl_args) kwargs['steps'] = [step.description()] runner = runner_class(**kwargs) try: runner.run() finally: runner.cleanup()
def main(cl_args=None): parser = _make_arg_parser() options = parser.parse_args(cl_args) runner_alias = options.runner or _DEFAULT_RUNNER runner_class = _runner_class(runner_alias) if options.help or not options.script_or_jar: _print_help(options, runner_class) sys.exit(0) MRJob.set_up_logging( quiet=options.quiet, verbose=options.verbose, ) kwargs = _get_runner_opt_kwargs(options, runner_class) kwargs.update(_HARD_CODED_OPTS) kwargs['input_paths'] = [os.devnull] step = _get_step(options, parser, cl_args) kwargs['steps'] = [step.description()] runner = runner_class(**kwargs) try: runner.run() finally: runner.cleanup()
def _mock_runner_class(runner_alias): rc = _runner_class(runner_alias) self.runner_class = Mock() self.runner_class.return_value = self.runner self.runner_class.alias = rc.alias self.runner_class.OPT_NAMES = rc.OPT_NAMES return self.runner_class
def _mock_runner_class(runner_alias): rc = _runner_class(runner_alias) self.runner_class = Mock() self.runner_class.return_value = self.runner self.runner_class.alias = rc.alias self.runner_class.OPT_NAMES = rc.OPT_NAMES return self.runner_class
def _runner_class(self): """Runner class, as indicated by ``--runner``. This uses conditional imports to avoid importing runner modules that we don't need (and may not have libraries for). Defaults to ``'local'`` and disallows use of inline runner. """ if not self.options.runner: return LocalMRJobRunner elif self.options.runner == 'inline': raise ValueError("inline is not supported in the multi-lingual" " launcher.") return _runner_class(self.options.runner)
def _runner_class(self): """Runner class, as indicated by ``--runner``. This uses conditional imports to avoid importing runner modules that we don't need (and may not have libraries for). Defaults to ``'local'`` and disallows use of inline runner. """ if not self.options.runner: return LocalMRJobRunner elif self.options.runner == 'inline': raise ValueError( "inline is not supported in the multi-lingual" " launcher.") return _runner_class(self.options.runner)