You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.3 KiB

  1. #!/usr/bin/env python3
  2. def convert_table(lines):
  3. def from_ascii():
  4. out = []
  5. first, header, third, *body, last = lines
  6. first = first.translate(str.maketrans({'-': '', '+': ''}))
  7. out.append(f'┏{first[1:-1]}┓')
  8. header = header.translate(str.maketrans({'|': ''}))
  9. out.append(f'┃{header[1:-1]}┃')
  10. third = third.translate(str.maketrans({'-': '', '+': ''}))
  11. out.append(f'┠{third[1:-1]}┨')
  12. for line in body:
  13. line = line.translate(str.maketrans({'|': ''}))
  14. line = line.replace('yes', '')
  15. out.append(f'┃{line[1:-1]}┃')
  16. last = last.translate(str.maketrans({'-': '', '+': ''}))
  17. out.append(f'┗{last[1:-1]}┛')
  18. return '\n'.join(out)
  19. def from_unicode():
  20. out = []
  21. for line in lines:
  22. line = line.translate(str.maketrans('┏┓┗┛┠┼┨┯┷━─┃│', '+++++++++--||'))
  23. line = line.replace('', 'yes')
  24. out.append(line)
  25. return '\n'.join(out)
  26. if lines[0][0] == '+':
  27. return from_ascii()
  28. return from_unicode()
  29. if __name__ == '__main__':
  30. input_lines = []
  31. try:
  32. while True:
  33. input_lines.append(input())
  34. except EOFError:
  35. pass
  36. print(convert_table(input_lines))