def _create_run(self, command_name=None, config_updates=None, named_configs=(), meta_info=None, options=None): command_name = command_name or self.default_command if command_name is None: raise RuntimeError('No command found to be run. Specify a command ' 'or define a main function.') default_options = self.get_default_options() if options: default_options.update(options) options = default_options # call option hooks for oh in self.option_hooks: oh(options=options) run = create_run(self, command_name, config_updates, named_configs=named_configs, force=options.get(ForceOption.get_flag(), False), log_level=options.get(LoglevelOption.get_flag(), None)) run.meta_info['command'] = command_name run.meta_info['options'] = options if meta_info: run.meta_info.update(meta_info) for option in gather_command_line_options(): option_value = options.get(option.get_flag(), False) if option_value: option.apply(option_value, run) self.current_run = run return run