# HG changeset patch # User Goffi # Date 1499017941 -7200 # Node ID 1a64fd7b648dfbf09ce6ffb75493ee7566d10419 # Parent 31f586d6ab1636f1a4d27a9eb8de689f73790b9e jp (standard output): added simple, json and json_raw for OUTPUT_DICT_DICT diff -r 31f586d6ab16 -r 1a64fd7b648d frontends/src/jp/output_std.py --- a/frontends/src/jp/output_std.py Sun Jul 02 19:51:00 2017 +0200 +++ b/frontends/src/jp/output_std.py Sun Jul 02 19:52:21 2017 +0200 @@ -38,6 +38,7 @@ host.register_output(C.OUTPUT_LIST, SIMPLE, self.list) host.register_output(C.OUTPUT_DICT, SIMPLE, self.dict) host.register_output(C.OUTPUT_LIST_DICT, SIMPLE, self.list_dict) + host.register_output(C.OUTPUT_DICT_DICT, SIMPLE, self.dict_dict) host.register_output(C.OUTPUT_COMPLEX, SIMPLE, self.simple_print) def simple_print(self, data): @@ -46,17 +47,20 @@ def list(self, data): self.host.disp(u'\n'.join(data)) - def dict(self, data): + def dict(self, data, indent=0, header_color=C.A_HEADER): options = self.host.parse_output_options() self.host.check_output_options({u'no-header'}, options) show_header = not u'no-header' in options for k, v in data.iteritems(): if show_header: - header = A.color(A.BOLD, A.FG_YELLOW, k) + u': ' + header = A.color(header_color, k) + u': ' else: header = u'' - self.host.disp((u'{header}{value}'.format(header=header, value=v))) + self.host.disp((u'{indent}{header}{value}'.format( + indent=indent*u' ', + header=header, + value=v))) def list_dict(self, data): for idx, datum in enumerate(data): @@ -64,6 +68,11 @@ self.host.disp(u'\n') self.dict(datum) + def dict_dict(self, data): + for key, sub_dict in data.iteritems(): + self.host.disp(A.color(C.A_HEADER, key)) + self.dict(sub_dict, indent=4, header_color=C.A_SUBHEADER) + class Json(object): """outputs in json format""" @@ -77,6 +86,8 @@ host.register_output(C.OUTPUT_DICT, JSON_RAW, self.dump) host.register_output(C.OUTPUT_LIST_DICT, JSON, self.dump_pretty) host.register_output(C.OUTPUT_LIST_DICT, JSON_RAW, self.dump) + host.register_output(C.OUTPUT_DICT_DICT, JSON, self.dump_pretty) + host.register_output(C.OUTPUT_DICT_DICT, JSON_RAW, self.dump) host.register_output(C.OUTPUT_COMPLEX, JSON, self.dump_pretty) host.register_output(C.OUTPUT_COMPLEX, JSON_RAW, self.dump)