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