summaryrefslogtreecommitdiffstats
path: root/hostinfo/printer.py
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 /hostinfo/printer.py
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.
Diffstat (limited to 'hostinfo/printer.py')
-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()