diff frontends/src/jp/base.py @ 2187:4ec72927a222

jp (outputs): moved output options parsing and checking to base methods
author Goffi <goffi@goffi.org>
date Sun, 12 Mar 2017 23:31:06 +0100
parents b9bfc45cea22
children 052d560d0dce
line wrap: on
line diff
--- 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