Skip to content

Commit

Permalink
Pad centered colored text consistently
Browse files Browse the repository at this point in the history
  • Loading branch information
mgedmin committed Mar 29, 2018
1 parent ad8f46e commit 0ae6743
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
11 changes: 7 additions & 4 deletions terminaltables/width_and_alignment.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,16 @@ def align_and_pad_cell(string, align, inner_dimensions, padding, space=' '):

# Horizontally align and pad.
for i, line in enumerate(lines):
new_width = inner_dimensions[0] + len(line) - visible_width(line)
lpad, rpad = padding[:2]
extra_padding = inner_dimensions[0] - visible_width(line)
if 'right' in align:
lines[i] = line.rjust(padding[0] + new_width, space) + (space * padding[1])
lpad += extra_padding
elif 'center' in align:
lines[i] = (space * padding[0]) + line.center(new_width, space) + (space * padding[1])
lpad += extra_padding // 2
rpad += (extra_padding + 1) // 2
else:
lines[i] = (space * padding[0]) + line.ljust(new_width + padding[1], space)
rpad += extra_padding
lines[i] = (space * lpad) + line + (space * rpad)

return lines

Expand Down
3 changes: 3 additions & 0 deletions tests/test_width_and_alignment/test_align_and_pad_cell.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@
('蓝色', 'center', 6, [' 蓝色 ']),
(u'שלום', 'center', 6, [u' \u05e9\u05dc\u05d5\u05dd ']),
(u'معرب', 'center', 6, [u' \u0645\u0639\u0631\u0628 ']),
('00:00', 'center', 8, [' 00:00 ']),
(colored('00:00', 'blue'), 'center', 8, [' \x1b[34m00:00\x1b[0m ']),
])
def test_width(string, align, width, expected):
"""Test width and horizontal alignment.
Expand Down

0 comments on commit 0ae6743

Please sign in to comment.