summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2013-05-29 19:00:21 +0200
committerAlexander Sulfrian <alexander@sulfrian.net>2013-05-29 19:00:21 +0200
commitb5a43bd59f225e56ac6edebc86c24afc4b117746 (patch)
treef8b94f2f3ed902db3428036925a9df75e27c7e88
parent11d468a99554ce12cf0169aef27a754b74e12f4c (diff)
downloadtools-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.py10
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()