Left align text.
(
text,
length,
left_edge='|',
right_edge='|',
text_length=None,
left_padding=2,
)
| 81 | |
| 82 | |
| 83 | def align_left( |
| 84 | text, |
| 85 | length, |
| 86 | left_edge='|', |
| 87 | right_edge='|', |
| 88 | text_length=None, |
| 89 | left_padding=2, |
| 90 | ): |
| 91 | """Left align text.""" |
| 92 | # postcondition: get_text_length(returned_text) == length |
| 93 | if text_length is None: |
| 94 | text_length = get_text_length(text) |
| 95 | computed_length = ( |
| 96 | text_length |
| 97 | + left_padding |
| 98 | + get_text_length(left_edge) |
| 99 | + get_text_length(right_edge) |
| 100 | ) |
| 101 | if length - computed_length >= 0: |
| 102 | padding = left_padding |
| 103 | else: |
| 104 | padding = 0 |
| 105 | output = [] |
| 106 | length_so_far = 0 |
| 107 | output.append(left_edge) |
| 108 | length_so_far += len(left_edge) |
| 109 | output.append(' ' * padding) |
| 110 | length_so_far += padding |
| 111 | output.append(text) |
| 112 | length_so_far += text_length |
| 113 | output.append(' ' * (length - length_so_far - len(right_edge))) |
| 114 | output.append(right_edge) |
| 115 | return ''.join(output) |
| 116 | |
| 117 | |
| 118 | def convert_to_vertical_table(sections): |
no test coverage detected