From 66ed5dfd8d6a90fba86dfe0388790cca9053675e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Lebleu?= Date: Sat, 31 May 2014 12:54:01 +0200 Subject: [PATCH] [fix] Review pretty_print_dict to prevent encoding issue --- moulinette/interfaces/cli.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/moulinette/interfaces/cli.py b/moulinette/interfaces/cli.py index 8a014b86..c6592d52 100644 --- a/moulinette/interfaces/cli.py +++ b/moulinette/interfaces/cli.py @@ -54,21 +54,23 @@ def pretty_print_dict(d, depth=0): if isinstance(v, list) and len(v) == 1: v = v[0] if isinstance(v, dict): - print((" ") * depth + ("%s: " % str(k))) + print("{:s}{}: ".format(" " * depth, k)) pretty_print_dict(v, depth+1) elif isinstance(v, list): - print((" ") * depth + ("%s: " % str(k))) + print("{:s}{}: ".format(" " * depth, k)) for key, value in enumerate(v): if isinstance(value, tuple): pretty_print_dict({value[0]: value[1]}, depth+1) elif isinstance(value, dict): pretty_print_dict({key: value}, depth+1) else: - print((" ") * (depth+1) + "- " +str(value)) + if isinstance(value, unicode): + value = value.encode('utf-8') + print("{:s}- {}".format(" " * (depth+1), value)) else: - if not isinstance(v, basestring): - v = str(v) - print((" ") * depth + "%s: %s" % (str(k), v)) + if isinstance(v, unicode): + v = v.encode('utf-8') + print("{:s}{}: {}".format(" " * depth, k, v)) def get_locale(): """Return current user locale"""