Revised formatting to work with multiple implicitly concatenated strings

This commit is contained in:
JamieC2002 2023-12-07 19:45:39 -05:00
parent 5c8d6a8bb4
commit 1ef76f3a0a
1 changed files with 10 additions and 10 deletions

View File

@ -344,11 +344,12 @@ def _compare_eq_iterable(
if _is_empty_vs_non_empty(left, right): if _is_empty_vs_non_empty(left, right):
left_formatting, right_formatting = _format_for_empty_and_non_empty(left, right) left_formatting, right_formatting = _format_for_empty_and_non_empty(left, right)
lines_left = len(left_formatting)
lines_right = len(right_formatting)
else: else:
left_formatting = pprint.pformat(left).splitlines() left_formatting = pprint.pformat(left).splitlines()
right_formatting = pprint.pformat(right).splitlines() right_formatting = pprint.pformat(right).splitlines()
# Re-format for different output lengths.
lines_left = len(left_formatting) lines_left = len(left_formatting)
lines_right = len(right_formatting) lines_right = len(right_formatting)
@ -389,16 +390,15 @@ def _format_for_empty_and_non_empty(
) -> Tuple[List[str], List[str]]: ) -> Tuple[List[str], List[str]]:
if isinstance(left, (list, tuple)) and isinstance(right, (list, tuple)): if isinstance(left, (list, tuple)) and isinstance(right, (list, tuple)):
if not left: if not left:
right_width = len(right[0]) + 4 if right else 80 right_width = max(len(s) + 4 for s in right)
right_formatting = pprint.pformat(right, width=right_width).splitlines() right_formatting = pprint.pformat(right, width=right_width).splitlines()
left_formatting = pprint.pformat(left).splitlines() left_formatting = pprint.pformat(left).splitlines()
else: else:
left_width = len(left[0]) + 4 if left else 80 left_width = max(len(s) + 4 for s in left)
left_formatting = pprint.pformat(left, width=left_width).splitlines() left_formatting = pprint.pformat(left, width=left_width).splitlines()
right_formatting = pprint.pformat(right).splitlines() right_formatting = pprint.pformat(right).splitlines()
return left_formatting, right_formatting return left_formatting, right_formatting
else: else:
# Fall back to default formatting
return pprint.pformat(left).splitlines(), pprint.pformat(right).splitlines() return pprint.pformat(left).splitlines(), pprint.pformat(right).splitlines()