roll_util: Don't use pprint to print dicts
In Python 3 pprint does additional formatting that it doesn't do in
Python 2. Don't use pprint so we get consistent formatting.
Bug: 465
Change-Id: I971e68bc880d9403609b5d7aa6dee883d1580fdb
Reviewed-on: https://pigweed-review.googlesource.com/c/infra/recipes/+/59284
Pigweed-Auto-Submit: Rob Mohr <mohrr@google.com>
Reviewed-by: Oliver Newman <olivernewman@google.com>
Commit-Queue: Rob Mohr <mohrr@google.com>
diff --git a/recipe_modules/roll_util/api.py b/recipe_modules/roll_util/api.py
index b7bcdc1..503e928 100644
--- a/recipe_modules/roll_util/api.py
+++ b/recipe_modules/roll_util/api.py
@@ -14,7 +14,6 @@
"""Utility functions for rollers."""
import collections
-import pprint
import re
import attr
@@ -260,6 +259,13 @@
return re.match(r'^[0-9a-fA-F]{40}', value)
+def _pprint_dict(d):
+ result = []
+ for k, v in sorted(d.items()):
+ result.append('{!r}: {!r}\n'.format(k, v))
+ return ''.join(result)
+
+
class RollUtilApi(recipe_api.RecipeApi):
def __init__(self, props, *args, **kwargs):
super(RollUtilApi, self).__init__(*args, **kwargs)
@@ -344,7 +350,7 @@
'message for {}'.format(roll.project_name)
) as pres:
pres.logs['template'] = template
- pres.logs['kwargs'] = pprint.pformat(kwargs)
+ pres.logs['kwargs'] = _pprint_dict(kwargs)
pres.logs['message'] = message.render()
return message
@@ -388,7 +394,7 @@
with self.m.step.nest('message') as pres:
pres.logs['template'] = template
- pres.logs['kwargs'] = pprint.pformat(kwargs)
+ pres.logs['kwargs'] = _pprint_dict(kwargs)
pres.logs['message'] = message.render()
return message