Abbreviate labels without introducing ambiguities.
(labels, rfill=' ')
| 67 | |
| 68 | |
| 69 | def abbreviate(labels, rfill=' '): |
| 70 | """ |
| 71 | Abbreviate labels without introducing ambiguities. |
| 72 | """ |
| 73 | max_len = max(len(l) for l in labels) |
| 74 | for i in range(1, max_len): |
| 75 | abbrev = [l[:i].ljust(i, rfill) for l in labels] |
| 76 | if len(abbrev) == len(set(abbrev)): |
| 77 | break |
| 78 | return abbrev |
| 79 | |
| 80 | |
| 81 | def box_text(text, width, offset=0): |