def table_string(table_columns: List[dict], table_dict: List[dict], header: bool=True, footer: bool=True) -> str:
table_width = 1
return_string = ""
for table_column in table_columns:
table_width += table_column["width"] + 1
if header:
for i, table_column in enumerate(table_columns):
if i == 0:
return_string += f" {table_column['name']}{' ' * (table_column['width'] - len(table_column['name']) - 1)}"
return_string += "|\n"
for table_column in table_columns:
return_string += f"┼{'-' * table_column['width']}"
return_string += "|\n"
for table_column in table_columns:
return_string += f"|{' ' * table_column['width']}"
return_string += "|\n"
for table_column in table_columns:
return_string += f"|{' ' * table_column['width']}"
return_string += "|\n"
for table_column in table_columns:
return_string += f"|{' ' * table_column['width']}"
return_string += "|\n"
for table_row in table_dict:
for table_cell in table_row.items():
pass
return return_string
test_columns = [
{
"width": 40,
"name": "Projects"
},
{
"width": 20,
"name": "Epochs"
},
{
"width": 20,
"name": "Collections"
},
]
print(table_string(test_columns, test_columns))
"""
┏━━━━━━━━┳━━━━━━━┓
┃ item ┃ qty ┃
┣━━━━━━━━╋━━━━━━━┫
┃ spam ┃ 42 ┃
┣━━━━━━━━╋━━━━━━━┫
┃ eggs ┃ 451 ┃
┣━━━━━━━━╋━━━━━━━┫
┃ bacon ┃ 0 ┃
┗━━━━━━━━┻━━━━━━━┛
╔════════════════╗
║ item ┃ qty ║
╠════════════════╣
║ spam ┃ 42 ║
║━━━━━━━━╋━━━━━━━║
║ eggs ┃ 451 ║
║━━━━━━━━╋━━━━━━━║
║ bacon ┃ 0 ║
╚════════════════╝
╔════════════════╗
║ item ┃ qty ║
╠════════════════╣
║ spam ┃ 42 ║
╠════════════════╣
║ eggs ┃ 451 ║
╠════════════════╣
║ bacon ┃ 0 ║
╚════════════════╝
┏━━━━━━━━┯━━━━━━━┓
┃ item │ qty ┃
┠────────┼───────┨
┃ spam │ 42 ┃
┠────────┼───────┨
┃ eggs │ 451 ┃
┠────────┼───────┨
┃ bacon │ 0 ┃
┗━━━━━━━━┷━━━━━━━┛
┏━━━━━━━━┳━━━━━━━┓
┃ item ┃ qty ┃
┣━━━━━━━━╇━━━━━━━┫
┃ spam │ 42 ┃
┠────────┼───────┨
┃ eggs │ 451 ┃
┠────────┼───────┨
┃ bacon │ 0 ┃
┗━━━━━━━━┷━━━━━━━┛
╔════════════════════════════════════════════╤═════╤═════╤═════╤═════╗
║ asdasdasd asdasdasd │ asd │ asd │ asd │ sdf ║
╠════════════════════════════════════════════╪═════╪═════╪═════╪═════╣
║ asd │ asd │ asd │ asd │ sdf ║
╟────────────────────────────────────────────┼─────┼─────┼─────┼─────╢
║ sdf │ sdf │ sdf │ sdf │ sdf ║
╟────────────────────────────────────────────┼─────┼─────┼─────┼─────╢
║ sdf │ sdf │ sdf │ sdf │ sdf ║
╚════════════════════════════════════════════╧═════╧═════╧═════╧═════╝
╔════════════════════════════════════════════════════════════════════╗
║ PROJECT: Some Project ║
╟────────────────────────────────────────────────────────────────────╢
║ And here is the project descript, whatever it might be. It might ║
║ even be several lines. ║
╠════════════════════════════════════════════╤═════╤═════╤═════╤═════╣
║ EPOCHS │ asd │ asd │ asd │ sdf ║
╠════════════════════════════════════════════╪═════╪═════╪═════╪═════╣
║ asd │ asd │ asd │ asd │ sdf ║
╟────────────────────────────────────────────┼─────┼─────┼─────┼─────╢
║ sdf │ sdf │ sdf │ sdf │ sdf ║
╟────────────────────────────────────────────┼─────┼─────┼─────┼─────╢
║ sdf │ sdf │ sdf │ sdf │ sdf ║
╚════════════════════════════════════════════╧═════╧═════╧═════╧═════╝
╔════════════════════════════════════════════════════════════════════╗
║ PROJECT: Some Project ║
╟────────────────────────────────────────────────────────────────────╢
║ And here is the project descript, whatever it might be. It might ║
║ even be several lines. ║
╠════════════════════════════════════════════╤═════╤═════╤═════╤═════╣
║ EPOCHS │ asd │ asd │ asd │ sdf ║
╠════════════════════════════════════════════╪═════╪═════╪═════╪═════╣
║ asd │ asd │ asd │ asd │ sdf ║
╟────────────────────────────────────────────┼─────┼─────┼─────┼─────╢
║ sdf │ sdf │ sdf │ sdf │ sdf ║
╟────────────────────────────────────────────┼─────┼─────┼─────┼─────╢
║ sdf │ sdf │ sdf │ sdf │ sdf ║
╚════════════════════════════════════════════╧═════╧═════╧═════╧═════╝
╔════════════════════════════════════════════════════════════════════╗
║ PROJECT: Some Project ║
╟────────────────────────────────────────────────────────────────────╢
║ And here is the project descript, whatever it might be. ║
╠════════════════════════════════════════════╤═════╤═════╤═════╤═════╣
║ EPOCHS │ asd │ asd │ asd │ sdf ║
╠════════════════════════════════════════════╪═════╪═════╪═════╪═════╣
║ Getting started │ asd │ asd │ asd │ sdf ║
╟────────────────────────────────────────────┼─────┼─────┼─────┼─────╢
║ Moving forward │ sdf │ sdf │ sdf │ sdf ║
╟────────────────────────────────────────────┼─────┼─────┼─────┼─────╢
║ Cleaning up │ sdf │ sdf │ sdf │ sdf ║
╚════════════════════════════════════════════╧═════╧═════╧═════╧═════╝
╔════════════════════════════════════════════╤═══════╤═══════╤═══════╤════════╗
║ asdasdasd │ asd │ asd │ asd │ asd ║
╟────────────────────────────────────────────┼───────┼───────┼───────┼────────╢
║ asd │ asd │ asd │ asd │ asd ║
║ sdf │ asd │ asd │ asd │ asd ║
║ sdf │ asd │ asd │ asd │ asd ║
╚════════════════════════════════════════════╧═══════╧═══════╧═══════╧════════╝
┌────────────────────────────────────────────┬─────┬─────┬─────┬─────┐
│ asdasdasd │ asd │ asd │ asd │ sdf │
├────────────────────────────────────────────┼─────┼─────┼─────┼─────┤
│ asd │ asd │ asd │ asd │ sdf │
│ sdf │ sdf │ sdf │ sdf │ sdf │
│ sdf │ sdf │ sdf │ sdf │ sdf │
└────────────────────────────────────────────┴─────┴─────┴─────┴─────┘
┌────────────────────────────────────────────┬─────┬─────┬─────┬─────┐
│ asdasdasd asdasdasd │ asd │ asd │ asd │ sdf │
╞════════════════════════════════════════════╪═════╪═════╪═════╪═════╡
│ asd │ asd │ asd │ asd │ sdf │
│ sdf │ sdf │ sdf │ sdf │ sdf │
│ sdf │ sdf │ sdf │ sdf │ sdf │
└────────────────────────────────────────────┴─────┴─────┴─────┴─────┘
"""
"""
│ ┃ ║
─ ━ ═
┌ ┏ ╔ ┍ ┎ ╒ ╓ * 4
├ ┣ ╠ ┠ ┝ ╟ ╞
┤ ┫ ╣ ┨ ┥ ╢ ╡
┼ ╋ ╬ ╂ ┿ ╀ ╁ ╇ ╈ ╫ ╪
"""
x = [
"thin",
"thick",
"thin"
"┿"
]
"""
│ ║
─ ═
┌ ╔ ╒ ╓ * 4
├ ╠ ╟ ╞
┤ ╣ ╢ ╡
┼ ╬ ╫ ╪
"""
"""
only thin for inner column... yes!
│ ┃ ║
─ ━ ═
┌ ┏ ╔ ┍ ┎ ╒ ╓ * 4
├ ┣ ╠ ┠ ┝ ╟ ╞ ║ ┃
┤ ┫ ╣ ┨ ┥ ╢ ╡ ║
┼ ┿ ╪
"""
"""
only thin for inner column...
same same outer border...
yes yes!!!
│ ┃ ║
─ ━ ═
┌ ┏ ╔ * 4
├ ┣ ╠ ┠ ┝ ╟ ╞ ║ ┃
┤ ┫ ╣ ┨ ┥ ╢ ╡ ║ ┃
┼ ┿ ╪
"""
"""
only thin for inner column...
same same outer border...
yes yes!!!
(sorted by outer first)
│ ┃ ║
─ ━ ═
┌ ┏ ╔ * 4
├ ┝ ╞ ┠ ┠ ┃ ╟ ║ ╠
┤ ┥ ╡ ┨ ┫ ┃ ╢ ║ ╣
┼ ┿ ╪
manageable...
"""
left_side_matrix = {
"thin": {
"thin": "├",
"thick": "┝",
"double": "╞"
},
"thick": {
"thin": "┠",
"thick": "┣",
"double": "┃"
},
"double": {
"thin": "╟",
"thick": "║",
"double": "╠"
}
}
right_side_matrix = {
"thin": {
"thin": "┤",
"thick": "┥",
"double": "╡"
},
"thick": {
"thin": "┨",
"thick": "┫",
"double": "┃"
},
"double": {
"thin": "╢",
"thick": "║",
"double": "╣"
}
}
row_index = 0