From b5a43bd59f225e56ac6edebc86c24afc4b117746 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Wed, 29 May 2013 19:00:21 +0200 Subject: Printer: recursive printing of lists The elements of a list, are now also styled before printing. It is also possible to filter the elements. Currently it is used to display the special port information for the defined services. --- hostinfo/printer.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/hostinfo/printer.py b/hostinfo/printer.py index 5f02aeb..26ae70e 100644 --- a/hostinfo/printer.py +++ b/hostinfo/printer.py @@ -111,8 +111,7 @@ class Printer: if isinstance(value, dict): self._print_dict(value, printer, filter_key, sort) elif isinstance(value, list): - for values in value: - printer.pprint(values) + self._print_list(value, printer, filter_key) elif value is None: if 'verbose' in self.flags: printer.pprint('') @@ -140,6 +139,13 @@ class Printer: filter_key is None or full_key == filter_key: printer.pprint(value) + def _print_list(self, values, printer, filter_key): + for value in values: + if isinstance(value, str): + self._print_value(value, printer, filter_key) + else: + self._print(value, printer, filter_key) + def _print_dict(self, value, printer, filter_key, sort): keys = _sort_with_list( [(key, full_key) for key in value.keys() -- cgit v1.2.3-1-g7c22