def frame(lines, word_mode=False):
if word_mode:
# Each word on it's own line.
lines = ' '.join(lines).split()
else:
# Traditional
lines = [l.strip() for l in lines]
maxlen = len(max(lines, key=len))
div = '*' * (maxlen + 4)
return '{div}\n{lines}\n{div}'.format(
div=div,
lines='\n'.join(('* {} *'.format(l.ljust(maxlen)) for l in lines)))
print(frame(('These are my lines.', 'They are framed.')))
ZGVmIGZyYW1lKGxpbmVzLCB3b3JkX21vZGU9RmFsc2UpOgogICAgaWYgd29yZF9tb2RlOgogICAgICAgICMgRWFjaCB3b3JkIG9uIGl0J3Mgb3duIGxpbmUuCiAgICAgICAgbGluZXMgPSAnICcuam9pbihsaW5lcykuc3BsaXQoKQogICAgZWxzZToKICAgICAgICAjIFRyYWRpdGlvbmFsCiAgICAgICAgbGluZXMgPSBbbC5zdHJpcCgpIGZvciBsIGluIGxpbmVzXQogICAgbWF4bGVuID0gbGVuKG1heChsaW5lcywga2V5PWxlbikpCiAgICBkaXYgPSAnKicgKiAobWF4bGVuICsgNCkKICAgIHJldHVybiAne2Rpdn1cbntsaW5lc31cbntkaXZ9Jy5mb3JtYXQoCiAgICAgICAgZGl2PWRpdiwKICAgICAgICBsaW5lcz0nXG4nLmpvaW4oKCcqIHt9IConLmZvcm1hdChsLmxqdXN0KG1heGxlbikpIGZvciBsIGluIGxpbmVzKSkpCgpwcmludChmcmFtZSgoJ1RoZXNlIGFyZSBteSBsaW5lcy4nLCAnVGhleSBhcmUgZnJhbWVkLicpKSk=