# HG changeset patch # User Goffi # Date 1489357866 -3600 # Node ID 4ec72927a2223674c31c7dba7df4249c86fef264 # Parent 9061c724796493b22951b593b14b27fb03a4db8a jp (outputs): moved output options parsing and checking to base methods diff -r 9061c7247964 -r 4ec72927a222 frontends/src/jp/base.py --- a/frontends/src/jp/base.py Sun Mar 12 23:29:09 2017 +0100 +++ b/frontends/src/jp/base.py Sun Mar 12 23:31:06 2017 +0100 @@ -318,6 +318,24 @@ 'description': description } + def parse_output_options(self): + options = self.command.args.output_opts + options_dict = {} + for option in options: + try: + key, value = option.split(u'=', 1) + except ValueError: + key, value = option, None + options_dict[key.strip()] = value.strip() if value is not None else None + return options_dict + + def check_output_options(self, accepted_set, options): + if not accepted_set.issuperset(options): + self.disp(u"The following output options are invalid: {invalid_options}".format( + invalid_options = u', '.join(set(options).difference(accepted_set))), + error=True) + self.quit(C.EXIT_BAD_ARG) + def import_plugins(self): """Automaticaly import commands and outputs in jp diff -r 9061c7247964 -r 4ec72927a222 frontends/src/jp/output_template.py --- a/frontends/src/jp/output_template.py Sun Mar 12 23:29:09 2017 +0100 +++ b/frontends/src/jp/output_template.py Sun Mar 12 23:31:06 2017 +0100 @@ -39,16 +39,6 @@ jp.register_output(C.OUTPUT_COMPLEX, TEMPLATE, self.render) self.renderer = template.Renderer(jp) - def parse_options(self, options): - options_dict = {} - for option in options: - try: - key, value = option.split(u'=', 1) - except ValueError: - key, value = option, None - options_dict[key.strip()] = value.strip() if value is not None else None - return options_dict - def render(self, data): """render output data using requested template @@ -60,12 +50,8 @@ data to a dict usable by the template. """ cmd = self.host.command - options = self.parse_options(cmd.args.output_opts) - if not OPTIONS.issuperset(options): - self.host.disp(u"The following output options are invalid: {invalid_options}".format( - invalid_options = u', '.join(set(options).difference(OPTIONS))), - error=True) - self.host.quit(C.EXIT_BAD_ARG) + options = self.host.parse_output_options() + self.host.check_output_options(OPTIONS, options) try: template_path = cmd.TEMPLATE except AttributeError: