diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2013-05-29 19:00:21 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-05-29 19:00:21 +0200 |
commit | b5a43bd59f225e56ac6edebc86c24afc4b117746 (patch) | |
tree | f8b94f2f3ed902db3428036925a9df75e27c7e88 | |
parent | 11d468a99554ce12cf0169aef27a754b74e12f4c (diff) | |
download | tools-b5a43bd59f225e56ac6edebc86c24afc4b117746.tar.gz tools-b5a43bd59f225e56ac6edebc86c24afc4b117746.tar.bz2 tools-b5a43bd59f225e56ac6edebc86c24afc4b117746.zip |
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.
-rw-r--r-- | hostinfo/printer.py | 10 |
1 files 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() |