Name | table2string JSON |
Version |
1.4.2
JSON |
| download |
home_page | None |
Summary | A library to convert tables to string with full support for line breaks and formatting |
upload_time | 2024-06-23 13:29:48 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.7 |
license | GPL2 |
keywords |
string
table
tools
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# table2string
[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/EgorKhabarov/table2string/tests.yml?style=flat&logo=GitHub&label=Tests)](https://github.com/EgorKhabarov/table2string/actions/workflows/tests.yml)
[![Publish Python Package to PyPI](https://img.shields.io/github/actions/workflow/status/EgorKhabarov/table2string/publish.yml?style=flat&logo=GitHub&label=Publish%20to%20PyPI)](https://github.com/EgorKhabarov/table2string/actions/workflows/publish.yml)
[![PyPi Package Version](https://img.shields.io/pypi/v/table2string.svg?style=flat&logo=pypi)](https://pypi.python.org/pypi/table2string)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/table2string.svg?style=flat&logo=pypi)](https://pypi.python.org/pypi/table2string)
[![PyPi status](https://img.shields.io/pypi/status/table2string.svg?style=flat&logo=pypi)](https://pypi.python.org/pypi/table2string)
[![PyPi downloads](https://img.shields.io/pypi/dm/table2string.svg?style=flat&logo=pypi)](https://pypi.org/project/table2string/)
## Convert table to string
While there are several libraries available for converting tables to strings in Python, none seemed to meet my specific requirements.
- **Line Break Support:** Easily include line breaks within cells for enhanced readability.
- **Emoji Integration:** Effortlessly incorporate emoji characters into your tables to add visual appeal and context.
---
# Install
## PyPI
```shell
pip install -U table2string
```
## GitHub
```shell
pip install -U git+https://github.com/EgorKhabarov/table2string.git@master
```
---
# Usage example
```pycon
>>> from table2string import print_table, stringify_table
>>> print_table([("1", "2", "3"), ("qwe", "rty\nuio", "")], name="Table Name")
+---------------+
| Table Name |
+-----+-----+---+
| 1 | 2 | 3 |
+-----+-----+---+
| qwe | rty | |
| | uio | |
+-----+-----+---+
>>> print(stringify_table([("1", "2", "3"), ("qwe", "rty\nuio", "")], name="Table Name"))
+---------------+
| Table Name |
+-----+-----+---+
| 1 | 2 | 3 |
+-----+-----+---+
| qwe | rty | |
| | uio | |
+-----+-----+---+
>>> from io import StringIO
>>> from table2string import Table
>>> Table.from_csv(StringIO('c1,c2,c3\n1,2,3\nqwe,"rty\nuio",'), name="Table Name").print()
+----------------+
| Table Name |
+-----+-----+----+
| c1 | c2 | c3 |
+-----+-----+----+
| 1 | 2 | 3 |
+-----+-----+----+
| qwe | rty | |
| | uio | |
+-----+-----+----+
>>> Table.from_csv(StringIO('c1,c2,c3\n1,2,3\nqwe,"rty\nuio",'), name="Table Name", column_names=False).print()
+---------------+
| Table Name |
+-----+-----+---+
| 1 | 2 | 3 |
+-----+-----+---+
| qwe | rty | |
| | uio | |
+-----+-----+---+
>>> import sqlite3
>>> cursor = sqlite3.connect(":memory:").cursor()
>>> cursor.execute(
... "CREATE TABLE data (c1 TEXT, c2 TEXT, c3 TEXT);"
... ).executemany(
... "INSERT INTO data (c1, c2, c3) VALUES (?, ?, ?);",
... [("1", "2", "3"), ("qwe", "rty\nuio", "")],
... ).execute(
... "SELECT c1, c2, c3 FROM data;"
... ) and None # because this method returns a cursor
>>> Table.from_db_cursor(cursor, name="Table Name").print()
+---------------+
| Table Name |
+-----+-----+---+
| 1 | 2 | 3 |
+-----+-----+---+
| qwe | rty | |
| | uio | |
+-----+-----+---+
>>> cursor.execute("SELECT c1, c2, c3 FROM data;") and None
>>> Table.from_db_cursor(cursor, name="Table Name", column_names=True).print()
+----------------+
| Table Name |
+-----+-----+----+
| c1 | c2 | c3 |
+-----+-----+----+
| 1 | 2 | 3 |
+-----+-----+----+
| qwe | rty | |
| | uio | |
+-----+-----+----+
```
## Custom width and height settings
| Width | Example | Description |
|-------------------------------------|----------------|-----------------------------------------------------------------------------------------------------------------------------|
| `<width>` | `10` | Setting `width` (`10`) for the whole table |
| `(<width>,)` | `(10,)` | Setting `width_1` (`10`) for all column |
| `(<width_1>, <width_2>)` | `(10, 20)` | Setting `width_1` (`10`) for the first column and `width_2` (`20`) for all other columns |
| `(<width_1>, <width_2>, <width_3>)` | `(10, 20, 30)` | Setting `width_1` (`10`) for the first column and `width_2` (`20`) for the second and `width_3` (`30`) for the third column |
<details>
<summary>Example</summary>
```pycon
>>> # Width of the entire table with borders
>>> print_table([(1,), (2.345,), ("example",)], max_width=10)
+--------+
| 1 |
+--------+
| 2.345 |
+--------+
| exampl↩|
| e |
+--------+
>>> # Width of each column individually
>>> print_table([(1,), (2.345,), ("example",)], max_width=(10,))
+------------+
| 1 |
+------------+
| 2.345 |
+------------+
| example |
+------------+
>>> print_table([("123456\n\n789000", "example")], max_width=(3, 4), max_height=4)
+-----+------+
| 123↩| exam↩|
| 456 | ple |
| | |
| 789…| |
+-----+------+
>>> print_table([("123456789",)], max_width=(1,), max_height=1)
+---+
| 1…|
+---+
>>> print_table(
... table=[("123\n456\n789",)],
... max_width=(3,),
... max_height=4,
... maximize_height=True,
... )
+-----+
| 123 |
| 456 |
| 789 |
| |
+-----+
>>> print_table(
... table=[("123456789",)],
... max_width=(3,),
... max_height=4,
... maximize_height=True,
... )
+-----+
| 123↩|
| 456↩|
| 789 |
| |
+-----+
```
</details>
## Text alignment
| Align | Example | Description |
|-------------------------------------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------|
| `"<align>"` or `("<align>",)` | `"^"` or `("^",)` | Setting `align` (`"^"`) for all columns |
| `("<align_1>", "<align_2>")` | `("^", "<")` | Setting `align_1` (`"^"`) for the first column and `align_2` (`"<"`) for all other columns |
| `("<align_1>", "<align_2>", "<align_3>")` | `("^", "<", ">")` | Setting `align_1` (`"^"`) for the first column and `align_2` (`"<"`) for the second and `align_3` (`">"`) for the third column |
### ALLOWED_ALIGNS
| Align | Description |
|:-----------:|------------------------------------------------------------------------------------------------------------------------------------------------------|
| `*` or `**` | Alignment depends on the type. If this is a number and there are no line breaks in this cell, then align to the right; otherwise, align to the left. |
| `<` or `<<` | All lines are left aligned |
| `^` or `^^` | All lines are center aligned |
| `>` or `>>` | All lines are right aligned |
| `<^` | The first line is left aligned and the remaining lines are centered |
| `<>` | The first line is left aligned and the remaining lines are right aligned |
| `^<` | The first line is aligned to the center, and the remaining lines are aligned to the left of the first line. |
| `^>` | The first line is aligned to the center, and the remaining lines are aligned to the right of the first line. |
| `><` | The first line is right aligned and the remaining lines are left aligned |
| `>^` | The first line is right aligned and the remaining lines are centered |
<details>
<summary>Example</summary>
```pycon
>>> kwargs_1 = {
... "table": [("1", "123456789\nqwerty\nasdfghjklzxcvb")],
... "name": "Table Name\nName\nNaaaaame",
... "column_names": ("1", "col 2\nc2"),
... "max_width": (5, 15),
... }
>>> print_table(**kwargs_1)
+-------------------------+
| Table Name |
| Name |
| Naaaaame |
+-------+-----------------+
| 1 | col 2 |
| | c2 |
+-------+-----------------+
| 1 | 123456789 |
| | qwerty |
| | asdfghjklzxcvb |
+-------+-----------------+
>>> print_table(**kwargs_1, align="*", name_align="*", column_names_align="*") # align="**", name_align="**", column_names_align="**"
+-------------------------+
| Table Name |
| Name |
| Naaaaame |
+-------+-----------------+
| 1 | col 2 |
| | c2 |
+-------+-----------------+
| 1 | 123456789 |
| | qwerty |
| | asdfghjklzxcvb |
+-------+-----------------+
>>> print_table(**kwargs_1, align="<", name_align="<", column_names_align="<") # align="<<", name_align="<<", column_names_align="<<"
+-------------------------+
| Table Name |
| Name |
| Naaaaame |
+-------+-----------------+
| 1 | col 2 |
| | c2 |
+-------+-----------------+
| 1 | 123456789 |
| | qwerty |
| | asdfghjklzxcvb |
+-------+-----------------+
>>> print_table(**kwargs_1, align=">", name_align=">", column_names_align=">") # align=">>", name_align=">>", column_names_align=">>"
+-------------------------+
| Table Name |
| Name |
| Naaaaame |
+-------+-----------------+
| 1 | col 2 |
| | c2 |
+-------+-----------------+
| 1 | 123456789 |
| | qwerty |
| | asdfghjklzxcvb |
+-------+-----------------+
>>> print_table(**kwargs_1, align="^", name_align="^", column_names_align="^") # align="^^", name_align="^^", column_names_align="^^"
+-------------------------+
| Table Name |
| Name |
| Naaaaame |
+-------+-----------------+
| 1 | col 2 |
| | c2 |
+-------+-----------------+
| 1 | 123456789 |
| | qwerty |
| | asdfghjklzxcvb |
+-------+-----------------+
>>> print_table(**kwargs_1, align="^<", name_align="^<", column_names_align="^<")
+-------------------------+
| Table Name |
| Name |
| Naaaaame |
+-------+-----------------+
| 1 | col 2 |
| | c2 |
+-------+-----------------+
| 1 | 123456789 |
| | qwerty |
| | asdfghjklzxcvb |
+-------+-----------------+
>>> print_table(**kwargs_1, align="^>", name_align="^>", column_names_align="^>")
+-------------------------+
| Table Name |
| Name |
| Naaaaame |
+-------+-----------------+
| 1 | col 2 |
| | c2 |
+-------+-----------------+
| 1 | 123456789 |
| | qwerty |
| | asdfghjklzxcvb |
+-------+-----------------+
>>> print_table([("qwerty\n123456789\nasdfghjklzxcvb",)], max_width=(18,), align="^<")
+--------------------+
| qwerty |
| 123456789 |
| asdfghjklzxcvb |
+--------------------+
>>> print_table([("qwerty\n123456789\nasdfghjklzxcvb",)], max_width=(18,), align="^>")
+--------------------+
| qwerty |
| 123456789 |
| asdfghjklzxcvb |
+--------------------+
```
</details>
## Separator settings
| Separator | Description |
|------------------------|--------------------------------------------|
| `sep=True` | All horizontal dividers included |
| `sep=False` | All horizontal dividers are disabled |
| `sep=(1,)` | Only first delimiter |
| `sep=(1, 3, 5)` | Only first third and fifth separator |
| `sep=range(1, 100, 5)` | Delimiter every five lines first 100 lines |
<details>
<summary>Example</summary>
```pycon
>>> table_1 = [("qwe", "rty\nuio"), ("123456\n\n789000", "example")]
>>> kwargs = {
... "max_width": (3, 4),
... "max_height": 4,
... }
>>> print_table(table_1, **kwargs, sep=True)
+-----+------+
| qwe | rty |
| | uio |
+-----+------+
| 123↩| exam↩|
| 456 | ple |
| | |
| 789…| |
+-----+------+
>>> print_table(table_1, **kwargs, sep=False)
+-----+------+
| qwe | rty |
| | uio |
| 123↩| exam↩|
| 456 | ple |
| | |
| 789…| |
+-----+------+
>>> table_2 = [("1", "2"), ("3", "4")]
>>> print_table(table_2, sep=True, name="Name")
+-------+
| Name |
+---+---+
| 1 | 2 |
+---+---+
| 3 | 4 |
+---+---+
>>> print_table(table_2, sep=False, name="Name")
+-------+
| Name |
+---+---+
| 1 | 2 |
| 3 | 4 |
+---+---+
>>> table_3 = [("1", "2"), ("3", "4"), ("5", "6"), ("7", "8")]
>>> print_table(table_3, sep=(1,))
+---+---+
| 1 | 2 |
+---+---+
| 3 | 4 |
| 5 | 6 |
| 7 | 8 |
+---+---+
>>> print_table(table_3, sep=(2,))
+---+---+
| 1 | 2 |
| 3 | 4 |
+---+---+
| 5 | 6 |
| 7 | 8 |
+---+---+
>>> print_table(table_3, sep=(1, 3))
+---+---+
| 1 | 2 |
+---+---+
| 3 | 4 |
| 5 | 6 |
+---+---+
| 7 | 8 |
+---+---+
>>> print_table(table_3, sep=(1,), name="Name")
+-------+
| Name |
+---+---+
| 1 | 2 |
+---+---+
| 3 | 4 |
| 5 | 6 |
| 7 | 8 |
+---+---+
>>> print_table(table_3, sep=(2,), name="Name")
+-------+
| Name |
+---+---+
| 1 | 2 |
| 3 | 4 |
+---+---+
| 5 | 6 |
| 7 | 8 |
+---+---+
>>> print_table(table_3, sep=(1, 3), name="Name")
+-------+
| Name |
+---+---+
| 1 | 2 |
+---+---+
| 3 | 4 |
| 5 | 6 |
+---+---+
| 7 | 8 |
+---+---+
```
</details>
## Borders
<details>
<summary>Border types</summary>
```text
╭───────────────────┬───────────────────────┬───────────────────────╮
│ ascii_thin │ +---------+---------+ │ +-------------------+ │
│ │ | _ | _ | │ | ascii_thin | │
│ │ +---------+---------+ │ +---------+---------+ │
│ │ | _ | _ | │ | _ | _ | │
│ │ +---------+---------+ │ +---------+---------+ │
│ │ | _ | _ | │ | _ | _ | │
│ │ +---------+---------+ │ +---------+---------+ │
│ │ │ | _ | _ | │
│ │ │ +---------+---------+ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ ascii_thin_double │ +---------+---------+ │ +-------------------+ │
│ │ | _ | _ | │ | ascii_thin_double | │
│ │ +=========+=========+ │ +---------+---------+ │
│ │ | _ | _ | │ | _ | _ | │
│ │ +---------+---------+ │ +=========+=========+ │
│ │ | _ | _ | │ | _ | _ | │
│ │ +---------+---------+ │ +---------+---------+ │
│ │ │ | _ | _ | │
│ │ │ +---------+---------+ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ ascii_double │ +=========+=========+ │ +===================+ │
│ │ ‖ _ ‖ _ ‖ │ ‖ ascii_double ‖ │
│ │ +=========+=========+ │ +=========+=========+ │
│ │ ‖ _ ‖ _ ‖ │ ‖ _ ‖ _ ‖ │
│ │ +=========+=========+ │ +=========+=========+ │
│ │ ‖ _ ‖ _ ‖ │ ‖ _ ‖ _ ‖ │
│ │ +=========+=========+ │ +=========+=========+ │
│ │ │ ‖ _ ‖ _ ‖ │
│ │ │ +=========+=========+ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ ascii_double_thin │ +=========+=========+ │ +===================+ │
│ │ ‖ _ ‖ _ ‖ │ ‖ ascii_double_thin ‖ │
│ │ +---------+---------+ │ +=========+=========+ │
│ │ ‖ _ ‖ _ ‖ │ ‖ _ ‖ _ ‖ │
│ │ +=========+=========+ │ +---------+---------+ │
│ │ ‖ _ ‖ _ ‖ │ ‖ _ ‖ _ ‖ │
│ │ +=========+=========+ │ +=========+=========+ │
│ │ │ ‖ _ ‖ _ ‖ │
│ │ │ +=========+=========+ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ ascii_booktabs │ ------------------- │ ------------------- │
│ │ _ _ │ ascii_booktabs │
│ │ =================== │ ------------------- │
│ │ _ _ │ _ _ │
│ │ ------------------- │ =================== │
│ │ _ _ │ _ _ │
│ │ ------------------- │ ------------------- │
│ │ │ _ _ │
│ │ │ ------------------- │
├───────────────────┼───────────────────────┼───────────────────────┤
│ thin │ ┌─────────┬─────────┐ │ ┌───────────────────┐ │
│ │ │ _ │ _ │ │ │ thin │ │
│ │ ├─────────┼─────────┤ │ ├─────────┬─────────┤ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ ├─────────┼─────────┤ │ ├─────────┼─────────┤ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ └─────────┴─────────┘ │ ├─────────┼─────────┤ │
│ │ │ │ _ │ _ │ │
│ │ │ └─────────┴─────────┘ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ thin_thick │ ┌─────────┬─────────┐ │ ┌───────────────────┐ │
│ │ │ _ │ _ │ │ │ thin_thick │ │
│ │ ┝━━━━━━━━━┿━━━━━━━━━┥ │ ├─────────┬─────────┤ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ ├─────────┼─────────┤ │ ┝━━━━━━━━━┿━━━━━━━━━┥ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ └─────────┴─────────┘ │ ├─────────┼─────────┤ │
│ │ │ │ _ │ _ │ │
│ │ │ └─────────┴─────────┘ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ thin_double │ ┌─────────┬─────────┐ │ ┌───────────────────┐ │
│ │ │ _ │ _ │ │ │ thin_double │ │
│ │ ╞═════════╪═════════╡ │ ├─────────┬─────────┤ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ ├─────────┼─────────┤ │ ╞═════════╪═════════╡ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ └─────────┴─────────┘ │ ├─────────┼─────────┤ │
│ │ │ │ _ │ _ │ │
│ │ │ └─────────┴─────────┘ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ rounded │ ╭─────────┬─────────╮ │ ╭───────────────────╮ │
│ │ │ _ │ _ │ │ │ rounded │ │
│ │ ├─────────┼─────────┤ │ ├─────────┬─────────┤ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ ├─────────┼─────────┤ │ ├─────────┼─────────┤ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ ╰─────────┴─────────╯ │ ├─────────┼─────────┤ │
│ │ │ │ _ │ _ │ │
│ │ │ ╰─────────┴─────────╯ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ rounded_thick │ ╭─────────┬─────────╮ │ ╭───────────────────╮ │
│ │ │ _ │ _ │ │ │ rounded_thick │ │
│ │ ┝━━━━━━━━━┿━━━━━━━━━┥ │ ├─────────┬─────────┤ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ ├─────────┼─────────┤ │ ┝━━━━━━━━━┿━━━━━━━━━┥ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ ╰─────────┴─────────╯ │ ├─────────┼─────────┤ │
│ │ │ │ _ │ _ │ │
│ │ │ ╰─────────┴─────────╯ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ rounded_double │ ╭─────────┬─────────╮ │ ╭───────────────────╮ │
│ │ │ _ │ _ │ │ │ rounded_double │ │
│ │ ╞═════════╪═════════╡ │ ├─────────┬─────────┤ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ ├─────────┼─────────┤ │ ╞═════════╪═════════╡ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ ╰─────────┴─────────╯ │ ├─────────┼─────────┤ │
│ │ │ │ _ │ _ │ │
│ │ │ ╰─────────┴─────────╯ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ thick │ ┏━━━━━━━━━┳━━━━━━━━━┓ │ ┏━━━━━━━━━━━━━━━━━━━┓ │
│ │ ┃ _ ┃ _ ┃ │ ┃ thick ┃ │
│ │ ┣━━━━━━━━━╋━━━━━━━━━┫ │ ┣━━━━━━━━━┳━━━━━━━━━┫ │
│ │ ┃ _ ┃ _ ┃ │ ┃ _ ┃ _ ┃ │
│ │ ┣━━━━━━━━━╋━━━━━━━━━┫ │ ┣━━━━━━━━━╋━━━━━━━━━┫ │
│ │ ┃ _ ┃ _ ┃ │ ┃ _ ┃ _ ┃ │
│ │ ┗━━━━━━━━━┻━━━━━━━━━┛ │ ┣━━━━━━━━━╋━━━━━━━━━┫ │
│ │ │ ┃ _ ┃ _ ┃ │
│ │ │ ┗━━━━━━━━━┻━━━━━━━━━┛ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ thick_thin │ ┌─────────┬─────────┐ │ ┌───────────────────┐ │
│ │ │ _ │ _ │ │ │ thick_thin │ │
│ │ ┠━━━━━━━━━╂━━━━━━━━━┨ │ ├─────────┬─────────┤ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ ├─────────┼─────────┤ │ ┠━━━━━━━━━╂━━━━━━━━━┨ │
│ │ │ _ │ _ │ │ │ _ │ _ │ │
│ │ └─────────┴─────────┘ │ ├─────────┼─────────┤ │
│ │ │ │ _ │ _ │ │
│ │ │ └─────────┴─────────┘ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ double │ ╔═════════╦═════════╗ │ ╔═══════════════════╗ │
│ │ ║ _ ║ _ ║ │ ║ double ║ │
│ │ ╠═════════╬═════════╣ │ ╠═════════╦═════════╣ │
│ │ ║ _ ║ _ ║ │ ║ _ ║ _ ║ │
│ │ ╠═════════╬═════════╣ │ ╠═════════╬═════════╣ │
│ │ ║ _ ║ _ ║ │ ║ _ ║ _ ║ │
│ │ ╚═════════╩═════════╝ │ ╠═════════╬═════════╣ │
│ │ │ ║ _ ║ _ ║ │
│ │ │ ╚═════════╩═════════╝ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ double_thin │ ╔═════════╦═════════╗ │ ╔═══════════════════╗ │
│ │ ║ _ ║ _ ║ │ ║ double_thin ║ │
│ │ ╟─────────╫─────────╢ │ ╠═════════╦═════════╣ │
│ │ ║ _ ║ _ ║ │ ║ _ ║ _ ║ │
│ │ ╠═════════╬═════════╣ │ ╟─────────╫─────────╢ │
│ │ ║ _ ║ _ ║ │ ║ _ ║ _ ║ │
│ │ ╚═════════╩═════════╝ │ ╠═════════╬═════════╣ │
│ │ │ ║ _ ║ _ ║ │
│ │ │ ╚═════════╩═════════╝ │
├───────────────────┼───────────────────────┼───────────────────────┤
│ booktabs │ ─────────────────── │ ─────────────────── │
│ │ _ _ │ booktabs │
│ │ ━━━━━━━━━━━━━━━━━━━ │ ─────────────────── │
│ │ _ _ │ _ _ │
│ │ ─────────────────── │ ━━━━━━━━━━━━━━━━━━━ │
│ │ _ _ │ _ _ │
│ │ ─────────────────── │ ─────────────────── │
│ │ │ _ _ │
│ │ │ ─────────────────── │
├───────────────────┼───────────────────────┼───────────────────────┤
│ markdown │ | _ | _ | │ | markdown | │
│ │ |---------|---------| │ | _ | _ | │
│ │ | _ | _ | │ |---------|---------| │
│ │ | _ | _ | │ | _ | _ | │
│ │ │ | _ | _ | │
╰───────────────────┴───────────────────────┴───────────────────────╯
```
</details>
<details>
<summary>Example</summary>
```pycon
>>> from table2string import Themes
>>> table_1 = [("1", "2", "3"), ("qwe", "rty\nuio", "")]
>>> name_1 = "Table Name"
>>> print_table(table_1, theme=Themes.ascii_thin)
+-----+-----+---+
| 1 | 2 | 3 |
+-----+-----+---+
| qwe | rty | |
| | uio | |
+-----+-----+---+
>>> print_table(table_1, theme=Themes.ascii_thin, name=name_1)
+---------------+
| Table Name |
+-----+-----+---+
| 1 | 2 | 3 |
+-----+-----+---+
| qwe | rty | |
| | uio | |
+-----+-----+---+
>>> print_table(table_1, theme=Themes.ascii_thin_double)
+-----+-----+---+
| 1 | 2 | 3 |
+=====+=====+===+
| qwe | rty | |
| | uio | |
+-----+-----+---+
>>> print_table(table_1, theme=Themes.ascii_thin_double, name=name_1)
+---------------+
| Table Name |
+-----+-----+---+
| 1 | 2 | 3 |
+=====+=====+===+
| qwe | rty | |
| | uio | |
+-----+-----+---+
>>> print_table(table_1, theme=Themes.ascii_double)
+=====+=====+===+
‖ 1 ‖ 2 ‖ 3 ‖
+=====+=====+===+
‖ qwe ‖ rty ‖ ‖
‖ ‖ uio ‖ ‖
+=====+=====+===+
>>> print_table(table_1, theme=Themes.ascii_double, name=name_1)
+===============+
‖ Table Name ‖
+=====+=====+===+
‖ 1 ‖ 2 ‖ 3 ‖
+=====+=====+===+
‖ qwe ‖ rty ‖ ‖
‖ ‖ uio ‖ ‖
+=====+=====+===+
>>> print_table(table_1, theme=Themes.ascii_double_thin)
+=====+=====+===+
‖ 1 ‖ 2 ‖ 3 ‖
+-----+-----+---+
‖ qwe ‖ rty ‖ ‖
‖ ‖ uio ‖ ‖
+=====+=====+===+
>>> print_table(table_1, theme=Themes.ascii_double_thin, name=name_1)
+===============+
‖ Table Name ‖
+=====+=====+===+
‖ 1 ‖ 2 ‖ 3 ‖
+-----+-----+---+
‖ qwe ‖ rty ‖ ‖
‖ ‖ uio ‖ ‖
+=====+=====+===+
>>> print_table(table_1, theme=Themes.ascii_booktabs)
---------------
1 2 3
===============
qwe rty
uio
---------------
>>> print_table(table_1, theme=Themes.ascii_booktabs, name=name_1)
---------------
Table Name
---------------
1 2 3
===============
qwe rty
uio
---------------
>>> print_table(table_1, theme=Themes.thin)
┌─────┬─────┬───┐
│ 1 │ 2 │ 3 │
├─────┼─────┼───┤
│ qwe │ rty │ │
│ │ uio │ │
└─────┴─────┴───┘
>>> print_table(table_1, theme=Themes.thin, name=name_1)
┌───────────────┐
│ Table Name │
├─────┬─────┬───┤
│ 1 │ 2 │ 3 │
├─────┼─────┼───┤
│ qwe │ rty │ │
│ │ uio │ │
└─────┴─────┴───┘
>>> print_table(table_1, theme=Themes.thin_thick)
┌─────┬─────┬───┐
│ 1 │ 2 │ 3 │
┝━━━━━┿━━━━━┿━━━┥
│ qwe │ rty │ │
│ │ uio │ │
└─────┴─────┴───┘
>>> print_table(table_1, theme=Themes.thin_thick, name=name_1)
┌───────────────┐
│ Table Name │
├─────┬─────┬───┤
│ 1 │ 2 │ 3 │
┝━━━━━┿━━━━━┿━━━┥
│ qwe │ rty │ │
│ │ uio │ │
└─────┴─────┴───┘
>>> print_table(table_1, theme=Themes.thin_double)
┌─────┬─────┬───┐
│ 1 │ 2 │ 3 │
╞═════╪═════╪═══╡
│ qwe │ rty │ │
│ │ uio │ │
└─────┴─────┴───┘
>>> print_table(table_1, theme=Themes.thin_double, name=name_1)
┌───────────────┐
│ Table Name │
├─────┬─────┬───┤
│ 1 │ 2 │ 3 │
╞═════╪═════╪═══╡
│ qwe │ rty │ │
│ │ uio │ │
└─────┴─────┴───┘
>>> print_table(table_1, theme=Themes.rounded)
╭─────┬─────┬───╮
│ 1 │ 2 │ 3 │
├─────┼─────┼───┤
│ qwe │ rty │ │
│ │ uio │ │
╰─────┴─────┴───╯
>>> print_table(table_1, theme=Themes.rounded, name=name_1)
╭───────────────╮
│ Table Name │
├─────┬─────┬───┤
│ 1 │ 2 │ 3 │
├─────┼─────┼───┤
│ qwe │ rty │ │
│ │ uio │ │
╰─────┴─────┴───╯
>>> print_table(table_1, theme=Themes.rounded_thick)
╭─────┬─────┬───╮
│ 1 │ 2 │ 3 │
┝━━━━━┿━━━━━┿━━━┥
│ qwe │ rty │ │
│ │ uio │ │
╰─────┴─────┴───╯
>>> print_table(table_1, theme=Themes.rounded_thick, name=name_1)
╭───────────────╮
│ Table Name │
├─────┬─────┬───┤
│ 1 │ 2 │ 3 │
┝━━━━━┿━━━━━┿━━━┥
│ qwe │ rty │ │
│ │ uio │ │
╰─────┴─────┴───╯
>>> print_table(table_1, theme=Themes.rounded_double)
╭─────┬─────┬───╮
│ 1 │ 2 │ 3 │
╞═════╪═════╪═══╡
│ qwe │ rty │ │
│ │ uio │ │
╰─────┴─────┴───╯
>>> print_table(table_1, theme=Themes.rounded_double, name=name_1)
╭───────────────╮
│ Table Name │
├─────┬─────┬───┤
│ 1 │ 2 │ 3 │
╞═════╪═════╪═══╡
│ qwe │ rty │ │
│ │ uio │ │
╰─────┴─────┴───╯
>>> print_table(table_1, theme=Themes.thick)
┏━━━━━┳━━━━━┳━━━┓
┃ 1 ┃ 2 ┃ 3 ┃
┣━━━━━╋━━━━━╋━━━┫
┃ qwe ┃ rty ┃ ┃
┃ ┃ uio ┃ ┃
┗━━━━━┻━━━━━┻━━━┛
>>> print_table(table_1, theme=Themes.thick, name=name_1)
┏━━━━━━━━━━━━━━━┓
┃ Table Name ┃
┣━━━━━┳━━━━━┳━━━┫
┃ 1 ┃ 2 ┃ 3 ┃
┣━━━━━╋━━━━━╋━━━┫
┃ qwe ┃ rty ┃ ┃
┃ ┃ uio ┃ ┃
┗━━━━━┻━━━━━┻━━━┛
>>> print_table(table_1, theme=Themes.thick_thin)
┌─────┬─────┬───┐
│ 1 │ 2 │ 3 │
┠━━━━━╂━━━━━╂━━━┨
│ qwe │ rty │ │
│ │ uio │ │
└─────┴─────┴───┘
>>> print_table(table_1, theme=Themes.thick_thin, name=name_1)
┌───────────────┐
│ Table Name │
├─────┬─────┬───┤
│ 1 │ 2 │ 3 │
┠━━━━━╂━━━━━╂━━━┨
│ qwe │ rty │ │
│ │ uio │ │
└─────┴─────┴───┘
>>> print_table(table_1, theme=Themes.double)
╔═════╦═════╦═══╗
║ 1 ║ 2 ║ 3 ║
╠═════╬═════╬═══╣
║ qwe ║ rty ║ ║
║ ║ uio ║ ║
╚═════╩═════╩═══╝
>>> print_table(table_1, theme=Themes.double, name=name_1)
╔═══════════════╗
║ Table Name ║
╠═════╦═════╦═══╣
║ 1 ║ 2 ║ 3 ║
╠═════╬═════╬═══╣
║ qwe ║ rty ║ ║
║ ║ uio ║ ║
╚═════╩═════╩═══╝
>>> print_table(table_1, theme=Themes.double_thin)
╔═════╦═════╦═══╗
║ 1 ║ 2 ║ 3 ║
╟─────╫─────╫───╢
║ qwe ║ rty ║ ║
║ ║ uio ║ ║
╚═════╩═════╩═══╝
>>> print_table(table_1, theme=Themes.double_thin, name=name_1)
╔═══════════════╗
║ Table Name ║
╠═════╦═════╦═══╣
║ 1 ║ 2 ║ 3 ║
╟─────╫─────╫───╢
║ qwe ║ rty ║ ║
║ ║ uio ║ ║
╚═════╩═════╩═══╝
>>> print_table(table_1, theme=Themes.booktabs)
───────────────
1 2 3
━━━━━━━━━━━━━━━
qwe rty
uio
───────────────
>>> print_table(table_1, theme=Themes.booktabs, name=name_1)
───────────────
Table Name
───────────────
1 2 3
━━━━━━━━━━━━━━━
qwe rty
uio
───────────────
>>> print_table(table_1, theme=Themes.markdown)
| 1 | 2 | 3 |
|-----|-----|---|
| qwe | rty | |
| | uio | |
>>> print_table(table_1, theme=Themes.markdown, name=name_1)
| Table Name |
| 1 | 2 | 3 |
|-----|-----|---|
| qwe | rty | |
| | uio | |
```
</details>
## Emojis
<details>
<summary>Example</summary>
```python
from prettytable import PrettyTable
from table2string import Table
names = ("plain text", "emoji")
table = [
(
"text\ntext",
"👨👩👧👦👨👩👦👦👨👩👧👧\n"
"👨👨👧👦👨👨👧👧👨👩👧👩❤️👨\n"
"👨❤️👨👯👩🦼👭👨👩👧👦\n"
"👨👨👧👦👨👨👦👩👩👧\n"
"👨👨👧👧👨👩👦👦",
),
]
t = PrettyTable(title="prettytable", field_names=names, align="c")
t.add_rows(table)
print(t)
t = Table(table, name="table2string", column_names=names)
t.print(align="^", sep=(1,))
```
<details>
<summary>Windows Terminal</summary>
![emoji_example_1.png](images/emoji_example_Windows_Terminal.png)
</details>
<details>
<summary>Windows 10</summary>
![emoji_example_windows_10_terminal.png](images/emoji_example_windows_10_terminal.png)
</details>
<details>
<summary>Windows 11</summary>
![emoji_example_windows_11_terminal.png](images/emoji_example_windows_11_terminal.png)
</details>
<details>
<summary>VT100 terminal emulator</summary>
![emoji_example_VT100_terminal_emulator.png](images/emoji_example_VT100_terminal_emulator.png)
</details>
</details>
Raw data
{
"_id": null,
"home_page": null,
"name": "table2string",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "string, table, tools",
"author": null,
"author_email": "EgorKhabarov <not.a.fan.of.broccoli@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/40/2d/564b335dd708b2c7dd39140654b8add0c85317c5f7129d82764b640c6cab/table2string-1.4.2.tar.gz",
"platform": null,
"description": "# table2string\n\n[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/EgorKhabarov/table2string/tests.yml?style=flat&logo=GitHub&label=Tests)](https://github.com/EgorKhabarov/table2string/actions/workflows/tests.yml)\n[![Publish Python Package to PyPI](https://img.shields.io/github/actions/workflow/status/EgorKhabarov/table2string/publish.yml?style=flat&logo=GitHub&label=Publish%20to%20PyPI)](https://github.com/EgorKhabarov/table2string/actions/workflows/publish.yml)\n\n[![PyPi Package Version](https://img.shields.io/pypi/v/table2string.svg?style=flat&logo=pypi)](https://pypi.python.org/pypi/table2string)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/table2string.svg?style=flat&logo=pypi)](https://pypi.python.org/pypi/table2string)\n[![PyPi status](https://img.shields.io/pypi/status/table2string.svg?style=flat&logo=pypi)](https://pypi.python.org/pypi/table2string)\n[![PyPi downloads](https://img.shields.io/pypi/dm/table2string.svg?style=flat&logo=pypi)](https://pypi.org/project/table2string/)\n\n## Convert table to string\n\nWhile there are several libraries available for converting tables to strings in Python, none seemed to meet my specific requirements. \n\n- **Line Break Support:** Easily include line breaks within cells for enhanced readability.\n- **Emoji Integration:** Effortlessly incorporate emoji characters into your tables to add visual appeal and context.\n\n---\n\n# Install\n\n## PyPI\n\n```shell\npip install -U table2string\n```\n\n## GitHub\n\n```shell\npip install -U git+https://github.com/EgorKhabarov/table2string.git@master\n```\n\n---\n\n# Usage example\n\n```pycon\n>>> from table2string import print_table, stringify_table\n>>> print_table([(\"1\", \"2\", \"3\"), (\"qwe\", \"rty\\nuio\", \"\")], name=\"Table Name\")\n+---------------+\n| Table Name |\n+-----+-----+---+\n| 1 | 2 | 3 |\n+-----+-----+---+\n| qwe | rty | |\n| | uio | |\n+-----+-----+---+\n>>> print(stringify_table([(\"1\", \"2\", \"3\"), (\"qwe\", \"rty\\nuio\", \"\")], name=\"Table Name\"))\n+---------------+\n| Table Name |\n+-----+-----+---+\n| 1 | 2 | 3 |\n+-----+-----+---+\n| qwe | rty | |\n| | uio | |\n+-----+-----+---+\n>>> from io import StringIO\n>>> from table2string import Table\n>>> Table.from_csv(StringIO('c1,c2,c3\\n1,2,3\\nqwe,\"rty\\nuio\",'), name=\"Table Name\").print()\n+----------------+\n| Table Name |\n+-----+-----+----+\n| c1 | c2 | c3 |\n+-----+-----+----+\n| 1 | 2 | 3 |\n+-----+-----+----+\n| qwe | rty | |\n| | uio | |\n+-----+-----+----+\n>>> Table.from_csv(StringIO('c1,c2,c3\\n1,2,3\\nqwe,\"rty\\nuio\",'), name=\"Table Name\", column_names=False).print()\n+---------------+\n| Table Name |\n+-----+-----+---+\n| 1 | 2 | 3 |\n+-----+-----+---+\n| qwe | rty | |\n| | uio | |\n+-----+-----+---+\n>>> import sqlite3\n>>> cursor = sqlite3.connect(\":memory:\").cursor()\n>>> cursor.execute(\n... \"CREATE TABLE data (c1 TEXT, c2 TEXT, c3 TEXT);\"\n... ).executemany(\n... \"INSERT INTO data (c1, c2, c3) VALUES (?, ?, ?);\",\n... [(\"1\", \"2\", \"3\"), (\"qwe\", \"rty\\nuio\", \"\")],\n... ).execute(\n... \"SELECT c1, c2, c3 FROM data;\"\n... ) and None # because this method returns a cursor\n>>> Table.from_db_cursor(cursor, name=\"Table Name\").print()\n+---------------+\n| Table Name |\n+-----+-----+---+\n| 1 | 2 | 3 |\n+-----+-----+---+\n| qwe | rty | |\n| | uio | |\n+-----+-----+---+\n>>> cursor.execute(\"SELECT c1, c2, c3 FROM data;\") and None\n>>> Table.from_db_cursor(cursor, name=\"Table Name\", column_names=True).print()\n+----------------+\n| Table Name |\n+-----+-----+----+\n| c1 | c2 | c3 |\n+-----+-----+----+\n| 1 | 2 | 3 |\n+-----+-----+----+\n| qwe | rty | |\n| | uio | |\n+-----+-----+----+\n\n```\n\n## Custom width and height settings\n\n| Width | Example | Description |\n|-------------------------------------|----------------|-----------------------------------------------------------------------------------------------------------------------------|\n| `<width>` | `10` | Setting `width` (`10`) for the whole table |\n| `(<width>,)` | `(10,)` | Setting `width_1` (`10`) for all column |\n| `(<width_1>, <width_2>)` | `(10, 20)` | Setting `width_1` (`10`) for the first column and `width_2` (`20`) for all other columns |\n| `(<width_1>, <width_2>, <width_3>)` | `(10, 20, 30)` | Setting `width_1` (`10`) for the first column and `width_2` (`20`) for the second and `width_3` (`30`) for the third column |\n\n<details>\n<summary>Example</summary>\n\n```pycon\n>>> # Width of the entire table with borders\n>>> print_table([(1,), (2.345,), (\"example\",)], max_width=10)\n+--------+\n| 1 |\n+--------+\n| 2.345 |\n+--------+\n| exampl\u21a9|\n| e |\n+--------+\n>>> # Width of each column individually\n>>> print_table([(1,), (2.345,), (\"example\",)], max_width=(10,))\n+------------+\n| 1 |\n+------------+\n| 2.345 |\n+------------+\n| example |\n+------------+\n>>> print_table([(\"123456\\n\\n789000\", \"example\")], max_width=(3, 4), max_height=4)\n+-----+------+\n| 123\u21a9| exam\u21a9|\n| 456 | ple |\n| | |\n| 789\u2026| |\n+-----+------+\n>>> print_table([(\"123456789\",)], max_width=(1,), max_height=1)\n+---+\n| 1\u2026|\n+---+\n>>> print_table(\n... table=[(\"123\\n456\\n789\",)],\n... max_width=(3,),\n... max_height=4,\n... maximize_height=True,\n... )\n+-----+\n| 123 |\n| 456 |\n| 789 |\n| |\n+-----+\n>>> print_table(\n... table=[(\"123456789\",)],\n... max_width=(3,),\n... max_height=4,\n... maximize_height=True,\n... )\n+-----+\n| 123\u21a9|\n| 456\u21a9|\n| 789 |\n| |\n+-----+\n\n```\n</details>\n\n## Text alignment\n\n| Align | Example | Description |\n|-------------------------------------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------|\n| `\"<align>\"` or `(\"<align>\",)` | `\"^\"` or `(\"^\",)` | Setting `align` (`\"^\"`) for all columns |\n| `(\"<align_1>\", \"<align_2>\")` | `(\"^\", \"<\")` | Setting `align_1` (`\"^\"`) for the first column and `align_2` (`\"<\"`) for all other columns |\n| `(\"<align_1>\", \"<align_2>\", \"<align_3>\")` | `(\"^\", \"<\", \">\")` | Setting `align_1` (`\"^\"`) for the first column and `align_2` (`\"<\"`) for the second and `align_3` (`\">\"`) for the third column |\n\n### ALLOWED_ALIGNS\n\n| Align | Description |\n|:-----------:|------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `*` or `**` | Alignment depends on the type. If this is a number and there are no line breaks in this cell, then align to the right; otherwise, align to the left. |\n| `<` or `<<` | All lines are left aligned |\n| `^` or `^^` | All lines are center aligned |\n| `>` or `>>` | All lines are right aligned |\n| `<^` | The first line is left aligned and the remaining lines are centered |\n| `<>` | The first line is left aligned and the remaining lines are right aligned |\n| `^<` | The first line is aligned to the center, and the remaining lines are aligned to the left of the first line. |\n| `^>` | The first line is aligned to the center, and the remaining lines are aligned to the right of the first line. |\n| `><` | The first line is right aligned and the remaining lines are left aligned |\n| `>^` | The first line is right aligned and the remaining lines are centered |\n\n<details>\n<summary>Example</summary>\n\n```pycon\n>>> kwargs_1 = {\n... \"table\": [(\"1\", \"123456789\\nqwerty\\nasdfghjklzxcvb\")],\n... \"name\": \"Table Name\\nName\\nNaaaaame\",\n... \"column_names\": (\"1\", \"col 2\\nc2\"),\n... \"max_width\": (5, 15),\n... }\n>>> print_table(**kwargs_1)\n+-------------------------+\n| Table Name |\n| Name |\n| Naaaaame |\n+-------+-----------------+\n| 1 | col 2 |\n| | c2 |\n+-------+-----------------+\n| 1 | 123456789 |\n| | qwerty |\n| | asdfghjklzxcvb |\n+-------+-----------------+\n>>> print_table(**kwargs_1, align=\"*\", name_align=\"*\", column_names_align=\"*\") # align=\"**\", name_align=\"**\", column_names_align=\"**\"\n+-------------------------+\n| Table Name |\n| Name |\n| Naaaaame |\n+-------+-----------------+\n| 1 | col 2 |\n| | c2 |\n+-------+-----------------+\n| 1 | 123456789 |\n| | qwerty |\n| | asdfghjklzxcvb |\n+-------+-----------------+\n>>> print_table(**kwargs_1, align=\"<\", name_align=\"<\", column_names_align=\"<\") # align=\"<<\", name_align=\"<<\", column_names_align=\"<<\"\n+-------------------------+\n| Table Name |\n| Name |\n| Naaaaame |\n+-------+-----------------+\n| 1 | col 2 |\n| | c2 |\n+-------+-----------------+\n| 1 | 123456789 |\n| | qwerty |\n| | asdfghjklzxcvb |\n+-------+-----------------+\n>>> print_table(**kwargs_1, align=\">\", name_align=\">\", column_names_align=\">\") # align=\">>\", name_align=\">>\", column_names_align=\">>\"\n+-------------------------+\n| Table Name |\n| Name |\n| Naaaaame |\n+-------+-----------------+\n| 1 | col 2 |\n| | c2 |\n+-------+-----------------+\n| 1 | 123456789 |\n| | qwerty |\n| | asdfghjklzxcvb |\n+-------+-----------------+\n>>> print_table(**kwargs_1, align=\"^\", name_align=\"^\", column_names_align=\"^\") # align=\"^^\", name_align=\"^^\", column_names_align=\"^^\"\n+-------------------------+\n| Table Name |\n| Name |\n| Naaaaame |\n+-------+-----------------+\n| 1 | col 2 |\n| | c2 |\n+-------+-----------------+\n| 1 | 123456789 |\n| | qwerty |\n| | asdfghjklzxcvb |\n+-------+-----------------+\n>>> print_table(**kwargs_1, align=\"^<\", name_align=\"^<\", column_names_align=\"^<\")\n+-------------------------+\n| Table Name |\n| Name |\n| Naaaaame |\n+-------+-----------------+\n| 1 | col 2 |\n| | c2 |\n+-------+-----------------+\n| 1 | 123456789 |\n| | qwerty |\n| | asdfghjklzxcvb |\n+-------+-----------------+\n>>> print_table(**kwargs_1, align=\"^>\", name_align=\"^>\", column_names_align=\"^>\")\n+-------------------------+\n| Table Name |\n| Name |\n| Naaaaame |\n+-------+-----------------+\n| 1 | col 2 |\n| | c2 |\n+-------+-----------------+\n| 1 | 123456789 |\n| | qwerty |\n| | asdfghjklzxcvb |\n+-------+-----------------+\n>>> print_table([(\"qwerty\\n123456789\\nasdfghjklzxcvb\",)], max_width=(18,), align=\"^<\")\n+--------------------+\n| qwerty |\n| 123456789 |\n| asdfghjklzxcvb |\n+--------------------+\n>>> print_table([(\"qwerty\\n123456789\\nasdfghjklzxcvb\",)], max_width=(18,), align=\"^>\")\n+--------------------+\n| qwerty |\n| 123456789 |\n| asdfghjklzxcvb |\n+--------------------+\n\n```\n</details>\n\n## Separator settings\n\n| Separator | Description |\n|------------------------|--------------------------------------------|\n| `sep=True` | All horizontal dividers included |\n| `sep=False` | All horizontal dividers are disabled |\n| `sep=(1,)` | Only first delimiter |\n| `sep=(1, 3, 5)` | Only first third and fifth separator |\n| `sep=range(1, 100, 5)` | Delimiter every five lines first 100 lines |\n\n<details>\n<summary>Example</summary>\n\n```pycon\n>>> table_1 = [(\"qwe\", \"rty\\nuio\"), (\"123456\\n\\n789000\", \"example\")]\n>>> kwargs = {\n... \"max_width\": (3, 4),\n... \"max_height\": 4,\n... }\n>>> print_table(table_1, **kwargs, sep=True)\n+-----+------+\n| qwe | rty |\n| | uio |\n+-----+------+\n| 123\u21a9| exam\u21a9|\n| 456 | ple |\n| | |\n| 789\u2026| |\n+-----+------+\n>>> print_table(table_1, **kwargs, sep=False)\n+-----+------+\n| qwe | rty |\n| | uio |\n| 123\u21a9| exam\u21a9|\n| 456 | ple |\n| | |\n| 789\u2026| |\n+-----+------+\n>>> table_2 = [(\"1\", \"2\"), (\"3\", \"4\")]\n>>> print_table(table_2, sep=True, name=\"Name\")\n+-------+\n| Name |\n+---+---+\n| 1 | 2 |\n+---+---+\n| 3 | 4 |\n+---+---+\n>>> print_table(table_2, sep=False, name=\"Name\")\n+-------+\n| Name |\n+---+---+\n| 1 | 2 |\n| 3 | 4 |\n+---+---+\n>>> table_3 = [(\"1\", \"2\"), (\"3\", \"4\"), (\"5\", \"6\"), (\"7\", \"8\")]\n>>> print_table(table_3, sep=(1,))\n+---+---+\n| 1 | 2 |\n+---+---+\n| 3 | 4 |\n| 5 | 6 |\n| 7 | 8 |\n+---+---+\n>>> print_table(table_3, sep=(2,))\n+---+---+\n| 1 | 2 |\n| 3 | 4 |\n+---+---+\n| 5 | 6 |\n| 7 | 8 |\n+---+---+\n>>> print_table(table_3, sep=(1, 3))\n+---+---+\n| 1 | 2 |\n+---+---+\n| 3 | 4 |\n| 5 | 6 |\n+---+---+\n| 7 | 8 |\n+---+---+\n>>> print_table(table_3, sep=(1,), name=\"Name\")\n+-------+\n| Name |\n+---+---+\n| 1 | 2 |\n+---+---+\n| 3 | 4 |\n| 5 | 6 |\n| 7 | 8 |\n+---+---+\n>>> print_table(table_3, sep=(2,), name=\"Name\")\n+-------+\n| Name |\n+---+---+\n| 1 | 2 |\n| 3 | 4 |\n+---+---+\n| 5 | 6 |\n| 7 | 8 |\n+---+---+\n>>> print_table(table_3, sep=(1, 3), name=\"Name\")\n+-------+\n| Name |\n+---+---+\n| 1 | 2 |\n+---+---+\n| 3 | 4 |\n| 5 | 6 |\n+---+---+\n| 7 | 8 |\n+---+---+\n\n```\n</details>\n\n## Borders\n\n<details>\n<summary>Border types</summary>\n\n```text\n\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 ascii_thin \u2502 +---------+---------+ \u2502 +-------------------+ \u2502\n\u2502 \u2502 | _ | _ | \u2502 | ascii_thin | \u2502\n\u2502 \u2502 +---------+---------+ \u2502 +---------+---------+ \u2502\n\u2502 \u2502 | _ | _ | \u2502 | _ | _ | \u2502\n\u2502 \u2502 +---------+---------+ \u2502 +---------+---------+ \u2502\n\u2502 \u2502 | _ | _ | \u2502 | _ | _ | \u2502\n\u2502 \u2502 +---------+---------+ \u2502 +---------+---------+ \u2502\n\u2502 \u2502 \u2502 | _ | _ | \u2502\n\u2502 \u2502 \u2502 +---------+---------+ \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 ascii_thin_double \u2502 +---------+---------+ \u2502 +-------------------+ \u2502\n\u2502 \u2502 | _ | _ | \u2502 | ascii_thin_double | \u2502\n\u2502 \u2502 +=========+=========+ \u2502 +---------+---------+ \u2502\n\u2502 \u2502 | _ | _ | \u2502 | _ | _ | \u2502\n\u2502 \u2502 +---------+---------+ \u2502 +=========+=========+ \u2502\n\u2502 \u2502 | _ | _ | \u2502 | _ | _ | \u2502\n\u2502 \u2502 +---------+---------+ \u2502 +---------+---------+ \u2502\n\u2502 \u2502 \u2502 | _ | _ | \u2502\n\u2502 \u2502 \u2502 +---------+---------+ \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 ascii_double \u2502 +=========+=========+ \u2502 +===================+ \u2502\n\u2502 \u2502 \u2016 _ \u2016 _ \u2016 \u2502 \u2016 ascii_double \u2016 \u2502\n\u2502 \u2502 +=========+=========+ \u2502 +=========+=========+ \u2502\n\u2502 \u2502 \u2016 _ \u2016 _ \u2016 \u2502 \u2016 _ \u2016 _ \u2016 \u2502\n\u2502 \u2502 +=========+=========+ \u2502 +=========+=========+ \u2502\n\u2502 \u2502 \u2016 _ \u2016 _ \u2016 \u2502 \u2016 _ \u2016 _ \u2016 \u2502\n\u2502 \u2502 +=========+=========+ \u2502 +=========+=========+ \u2502\n\u2502 \u2502 \u2502 \u2016 _ \u2016 _ \u2016 \u2502\n\u2502 \u2502 \u2502 +=========+=========+ \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 ascii_double_thin \u2502 +=========+=========+ \u2502 +===================+ \u2502\n\u2502 \u2502 \u2016 _ \u2016 _ \u2016 \u2502 \u2016 ascii_double_thin \u2016 \u2502\n\u2502 \u2502 +---------+---------+ \u2502 +=========+=========+ \u2502\n\u2502 \u2502 \u2016 _ \u2016 _ \u2016 \u2502 \u2016 _ \u2016 _ \u2016 \u2502\n\u2502 \u2502 +=========+=========+ \u2502 +---------+---------+ \u2502\n\u2502 \u2502 \u2016 _ \u2016 _ \u2016 \u2502 \u2016 _ \u2016 _ \u2016 \u2502\n\u2502 \u2502 +=========+=========+ \u2502 +=========+=========+ \u2502\n\u2502 \u2502 \u2502 \u2016 _ \u2016 _ \u2016 \u2502\n\u2502 \u2502 \u2502 +=========+=========+ \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 ascii_booktabs \u2502 ------------------- \u2502 ------------------- \u2502\n\u2502 \u2502 _ _ \u2502 ascii_booktabs \u2502\n\u2502 \u2502 =================== \u2502 ------------------- \u2502\n\u2502 \u2502 _ _ \u2502 _ _ \u2502\n\u2502 \u2502 ------------------- \u2502 =================== \u2502\n\u2502 \u2502 _ _ \u2502 _ _ \u2502\n\u2502 \u2502 ------------------- \u2502 ------------------- \u2502\n\u2502 \u2502 \u2502 _ _ \u2502\n\u2502 \u2502 \u2502 ------------------- \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 thin \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 thin \u2502 \u2502\n\u2502 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 thin_thick \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 thin_thick \u2502 \u2502\n\u2502 \u2502 \u251d\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2525 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u251d\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2525 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 thin_double \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 thin_double \u2502 \u2502\n\u2502 \u2502 \u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 rounded \u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 rounded \u2502 \u2502\n\u2502 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 rounded_thick \u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 rounded_thick \u2502 \u2502\n\u2502 \u2502 \u251d\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2525 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u251d\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2525 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 rounded_double \u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502 \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 rounded_double \u2502 \u2502\n\u2502 \u2502 \u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u255e\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2561 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2502 \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 thick \u2502 \u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513 \u2502 \u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513 \u2502\n\u2502 \u2502 \u2503 _ \u2503 _ \u2503 \u2502 \u2503 thick \u2503 \u2502\n\u2502 \u2502 \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252b \u2502 \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252b \u2502\n\u2502 \u2502 \u2503 _ \u2503 _ \u2503 \u2502 \u2503 _ \u2503 _ \u2503 \u2502\n\u2502 \u2502 \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252b \u2502 \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252b \u2502\n\u2502 \u2502 \u2503 _ \u2503 _ \u2503 \u2502 \u2503 _ \u2503 _ \u2503 \u2502\n\u2502 \u2502 \u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251b \u2502 \u2523\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u252b \u2502\n\u2502 \u2502 \u2502 \u2503 _ \u2503 _ \u2503 \u2502\n\u2502 \u2502 \u2502 \u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251b \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 thick_thin \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 thick_thin \u2502 \u2502\n\u2502 \u2502 \u2520\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2542\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2528 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u2520\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2542\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2528 \u2502\n\u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502\n\u2502 \u2502 \u2502 \u2502 _ \u2502 _ \u2502 \u2502\n\u2502 \u2502 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 double \u2502 \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557 \u2502 \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557 \u2502\n\u2502 \u2502 \u2551 _ \u2551 _ \u2551 \u2502 \u2551 double \u2551 \u2502\n\u2502 \u2502 \u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563 \u2502 \u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563 \u2502\n\u2502 \u2502 \u2551 _ \u2551 _ \u2551 \u2502 \u2551 _ \u2551 _ \u2551 \u2502\n\u2502 \u2502 \u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563 \u2502 \u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563 \u2502\n\u2502 \u2502 \u2551 _ \u2551 _ \u2551 \u2502 \u2551 _ \u2551 _ \u2551 \u2502\n\u2502 \u2502 \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u2502 \u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563 \u2502\n\u2502 \u2502 \u2502 \u2551 _ \u2551 _ \u2551 \u2502\n\u2502 \u2502 \u2502 \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 double_thin \u2502 \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557 \u2502 \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557 \u2502\n\u2502 \u2502 \u2551 _ \u2551 _ \u2551 \u2502 \u2551 double_thin \u2551 \u2502\n\u2502 \u2502 \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256b\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562 \u2502 \u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563 \u2502\n\u2502 \u2502 \u2551 _ \u2551 _ \u2551 \u2502 \u2551 _ \u2551 _ \u2551 \u2502\n\u2502 \u2502 \u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563 \u2502 \u255f\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256b\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2562 \u2502\n\u2502 \u2502 \u2551 _ \u2551 _ \u2551 \u2502 \u2551 _ \u2551 _ \u2551 \u2502\n\u2502 \u2502 \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u2502 \u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563 \u2502\n\u2502 \u2502 \u2502 \u2551 _ \u2551 _ \u2551 \u2502\n\u2502 \u2502 \u2502 \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 booktabs \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2502\n\u2502 \u2502 _ _ \u2502 booktabs \u2502\n\u2502 \u2502 \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2502\n\u2502 \u2502 _ _ \u2502 _ _ \u2502\n\u2502 \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2502 \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 \u2502\n\u2502 \u2502 _ _ \u2502 _ _ \u2502\n\u2502 \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2502\n\u2502 \u2502 \u2502 _ _ \u2502\n\u2502 \u2502 \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 markdown \u2502 | _ | _ | \u2502 | markdown | \u2502\n\u2502 \u2502 |---------|---------| \u2502 | _ | _ | \u2502\n\u2502 \u2502 | _ | _ | \u2502 |---------|---------| \u2502\n\u2502 \u2502 | _ | _ | \u2502 | _ | _ | \u2502\n\u2502 \u2502 \u2502 | _ | _ | \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n```\n</details>\n\n<details>\n<summary>Example</summary>\n\n```pycon\n>>> from table2string import Themes\n>>> table_1 = [(\"1\", \"2\", \"3\"), (\"qwe\", \"rty\\nuio\", \"\")]\n>>> name_1 = \"Table Name\"\n>>> print_table(table_1, theme=Themes.ascii_thin)\n+-----+-----+---+\n| 1 | 2 | 3 |\n+-----+-----+---+\n| qwe | rty | |\n| | uio | |\n+-----+-----+---+\n>>> print_table(table_1, theme=Themes.ascii_thin, name=name_1)\n+---------------+\n| Table Name |\n+-----+-----+---+\n| 1 | 2 | 3 |\n+-----+-----+---+\n| qwe | rty | |\n| | uio | |\n+-----+-----+---+\n>>> print_table(table_1, theme=Themes.ascii_thin_double)\n+-----+-----+---+\n| 1 | 2 | 3 |\n+=====+=====+===+\n| qwe | rty | |\n| | uio | |\n+-----+-----+---+\n>>> print_table(table_1, theme=Themes.ascii_thin_double, name=name_1)\n+---------------+\n| Table Name |\n+-----+-----+---+\n| 1 | 2 | 3 |\n+=====+=====+===+\n| qwe | rty | |\n| | uio | |\n+-----+-----+---+\n>>> print_table(table_1, theme=Themes.ascii_double)\n+=====+=====+===+\n\u2016 1 \u2016 2 \u2016 3 \u2016\n+=====+=====+===+\n\u2016 qwe \u2016 rty \u2016 \u2016\n\u2016 \u2016 uio \u2016 \u2016\n+=====+=====+===+\n>>> print_table(table_1, theme=Themes.ascii_double, name=name_1)\n+===============+\n\u2016 Table Name \u2016\n+=====+=====+===+\n\u2016 1 \u2016 2 \u2016 3 \u2016\n+=====+=====+===+\n\u2016 qwe \u2016 rty \u2016 \u2016\n\u2016 \u2016 uio \u2016 \u2016\n+=====+=====+===+\n>>> print_table(table_1, theme=Themes.ascii_double_thin)\n+=====+=====+===+\n\u2016 1 \u2016 2 \u2016 3 \u2016\n+-----+-----+---+\n\u2016 qwe \u2016 rty \u2016 \u2016\n\u2016 \u2016 uio \u2016 \u2016\n+=====+=====+===+\n>>> print_table(table_1, theme=Themes.ascii_double_thin, name=name_1)\n+===============+\n\u2016 Table Name \u2016\n+=====+=====+===+\n\u2016 1 \u2016 2 \u2016 3 \u2016\n+-----+-----+---+\n\u2016 qwe \u2016 rty \u2016 \u2016\n\u2016 \u2016 uio \u2016 \u2016\n+=====+=====+===+\n>>> print_table(table_1, theme=Themes.ascii_booktabs)\n --------------- \n 1 2 3 \n =============== \n qwe rty \n uio \n --------------- \n>>> print_table(table_1, theme=Themes.ascii_booktabs, name=name_1)\n --------------- \n Table Name \n --------------- \n 1 2 3 \n =============== \n qwe rty \n uio \n --------------- \n>>> print_table(table_1, theme=Themes.thin)\n\u250c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2510\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2524\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2518\n>>> print_table(table_1, theme=Themes.thin, name=name_1)\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Table Name \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2524\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2524\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2518\n>>> print_table(table_1, theme=Themes.thin_thick)\n\u250c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2510\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u251d\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2525\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2518\n>>> print_table(table_1, theme=Themes.thin_thick, name=name_1)\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Table Name \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2524\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u251d\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2525\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2518\n>>> print_table(table_1, theme=Themes.thin_double)\n\u250c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2510\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2561\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2518\n>>> print_table(table_1, theme=Themes.thin_double, name=name_1)\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Table Name \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2524\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2561\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2518\n>>> print_table(table_1, theme=Themes.rounded)\n\u256d\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u256e\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2524\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u256f\n>>> print_table(table_1, theme=Themes.rounded, name=name_1)\n\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 Table Name \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2524\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2524\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u256f\n>>> print_table(table_1, theme=Themes.rounded_thick)\n\u256d\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u256e\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u251d\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2525\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u256f\n>>> print_table(table_1, theme=Themes.rounded_thick, name=name_1)\n\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 Table Name \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2524\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u251d\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2501\u2501\u253f\u2501\u2501\u2501\u2525\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u256f\n>>> print_table(table_1, theme=Themes.rounded_double)\n\u256d\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u256e\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2561\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u256f\n>>> print_table(table_1, theme=Themes.rounded_double, name=name_1)\n\u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 Table Name \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2524\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u255e\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2550\u2550\u256a\u2550\u2550\u2550\u2561\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u256f\n>>> print_table(table_1, theme=Themes.thick)\n\u250f\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2513\n\u2503 1 \u2503 2 \u2503 3 \u2503\n\u2523\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u252b\n\u2503 qwe \u2503 rty \u2503 \u2503\n\u2503 \u2503 uio \u2503 \u2503\n\u2517\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u251b\n>>> print_table(table_1, theme=Themes.thick, name=name_1)\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Table Name \u2503\n\u2523\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u252b\n\u2503 1 \u2503 2 \u2503 3 \u2503\n\u2523\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u2501\u2501\u254b\u2501\u2501\u2501\u252b\n\u2503 qwe \u2503 rty \u2503 \u2503\n\u2503 \u2503 uio \u2503 \u2503\n\u2517\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u2501\u2501\u253b\u2501\u2501\u2501\u251b\n>>> print_table(table_1, theme=Themes.thick_thin)\n\u250c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2510\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u2520\u2501\u2501\u2501\u2501\u2501\u2542\u2501\u2501\u2501\u2501\u2501\u2542\u2501\u2501\u2501\u2528\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2518\n>>> print_table(table_1, theme=Themes.thick_thin, name=name_1)\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Table Name \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2524\n\u2502 1 \u2502 2 \u2502 3 \u2502\n\u2520\u2501\u2501\u2501\u2501\u2501\u2542\u2501\u2501\u2501\u2501\u2501\u2542\u2501\u2501\u2501\u2528\n\u2502 qwe \u2502 rty \u2502 \u2502\n\u2502 \u2502 uio \u2502 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2518\n>>> print_table(table_1, theme=Themes.double)\n\u2554\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2557\n\u2551 1 \u2551 2 \u2551 3 \u2551\n\u2560\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2563\n\u2551 qwe \u2551 rty \u2551 \u2551\n\u2551 \u2551 uio \u2551 \u2551\n\u255a\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u255d\n>>> print_table(table_1, theme=Themes.double, name=name_1)\n\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\u2551 Table Name \u2551\n\u2560\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2563\n\u2551 1 \u2551 2 \u2551 3 \u2551\n\u2560\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2550\u2550\u256c\u2550\u2550\u2550\u2563\n\u2551 qwe \u2551 rty \u2551 \u2551\n\u2551 \u2551 uio \u2551 \u2551\n\u255a\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u255d\n>>> print_table(table_1, theme=Themes.double_thin)\n\u2554\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2557\n\u2551 1 \u2551 2 \u2551 3 \u2551\n\u255f\u2500\u2500\u2500\u2500\u2500\u256b\u2500\u2500\u2500\u2500\u2500\u256b\u2500\u2500\u2500\u2562\n\u2551 qwe \u2551 rty \u2551 \u2551\n\u2551 \u2551 uio \u2551 \u2551\n\u255a\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u255d\n>>> print_table(table_1, theme=Themes.double_thin, name=name_1)\n\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\u2551 Table Name \u2551\n\u2560\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2550\u2550\u2566\u2550\u2550\u2550\u2563\n\u2551 1 \u2551 2 \u2551 3 \u2551\n\u255f\u2500\u2500\u2500\u2500\u2500\u256b\u2500\u2500\u2500\u2500\u2500\u256b\u2500\u2500\u2500\u2562\n\u2551 qwe \u2551 rty \u2551 \u2551\n\u2551 \u2551 uio \u2551 \u2551\n\u255a\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u2550\u2550\u2569\u2550\u2550\u2550\u255d\n>>> print_table(table_1, theme=Themes.booktabs)\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n 1 2 3 \n \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 \n qwe rty \n uio \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n>>> print_table(table_1, theme=Themes.booktabs, name=name_1)\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n Table Name \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n 1 2 3 \n \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 \n qwe rty \n uio \n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \n>>> print_table(table_1, theme=Themes.markdown)\n| 1 | 2 | 3 |\n|-----|-----|---|\n| qwe | rty | |\n| | uio | |\n>>> print_table(table_1, theme=Themes.markdown, name=name_1)\n| Table Name |\n| 1 | 2 | 3 |\n|-----|-----|---|\n| qwe | rty | |\n| | uio | |\n\n```\n\n</details>\n\n## Emojis\n\n<details>\n<summary>Example</summary>\n\n```python\nfrom prettytable import PrettyTable\nfrom table2string import Table\n\nnames = (\"plain text\", \"emoji\")\ntable = [\n (\n \"text\\ntext\",\n \"\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67\\n\"\n \"\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc68\\n\"\n \"\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83d\udc6f\ud83d\udc69\u200d\ud83e\uddbc\ud83d\udc6d\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66\\n\"\n \"\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\\n\"\n \"\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66\",\n ),\n]\nt = PrettyTable(title=\"prettytable\", field_names=names, align=\"c\")\nt.add_rows(table)\nprint(t)\n\nt = Table(table, name=\"table2string\", column_names=names)\nt.print(align=\"^\", sep=(1,))\n```\n\n<details>\n<summary>Windows Terminal</summary>\n\n![emoji_example_1.png](images/emoji_example_Windows_Terminal.png)\n</details>\n\n<details>\n<summary>Windows 10</summary>\n\n![emoji_example_windows_10_terminal.png](images/emoji_example_windows_10_terminal.png)\n</details>\n\n<details>\n<summary>Windows 11</summary>\n\n![emoji_example_windows_11_terminal.png](images/emoji_example_windows_11_terminal.png)\n</details>\n\n<details>\n<summary>VT100 terminal emulator</summary>\n\n![emoji_example_VT100_terminal_emulator.png](images/emoji_example_VT100_terminal_emulator.png)\n</details>\n</details>\n",
"bugtrack_url": null,
"license": "GPL2",
"summary": "A library to convert tables to string with full support for line breaks and formatting",
"version": "1.4.2",
"project_urls": {
"Documentation": "https://github.com/EgorKhabarov/table2string",
"Homepage": "https://github.com/EgorKhabarov/table2string",
"Issues": "https://github.com/EgorKhabarov/table2string/issues",
"Repository": "https://github.com/EgorKhabarov/table2string"
},
"split_keywords": [
"string",
" table",
" tools"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4367015ef1c83c0b62792041de032a174e22f2548212d953897c658ba95f7554",
"md5": "93134ca631781025c7029d388a2de6e2",
"sha256": "f3f721d12642d81505dcb47ecc2119e9a9665eb2b553d49d3ecd3cb34765331a"
},
"downloads": -1,
"filename": "table2string-1.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "93134ca631781025c7029d388a2de6e2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 19387,
"upload_time": "2024-06-23T13:29:47",
"upload_time_iso_8601": "2024-06-23T13:29:47.020702Z",
"url": "https://files.pythonhosted.org/packages/43/67/015ef1c83c0b62792041de032a174e22f2548212d953897c658ba95f7554/table2string-1.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "402d564b335dd708b2c7dd39140654b8add0c85317c5f7129d82764b640c6cab",
"md5": "cba2b56fe78c300c7126d7f06482d13f",
"sha256": "4fcdf5c97c72f77a13b397bdcee19db3fe6b98d386548c974f0b3fd76f362831"
},
"downloads": -1,
"filename": "table2string-1.4.2.tar.gz",
"has_sig": false,
"md5_digest": "cba2b56fe78c300c7126d7f06482d13f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 404737,
"upload_time": "2024-06-23T13:29:48",
"upload_time_iso_8601": "2024-06-23T13:29:48.460558Z",
"url": "https://files.pythonhosted.org/packages/40/2d/564b335dd708b2c7dd39140654b8add0c85317c5f7129d82764b640c6cab/table2string-1.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-23 13:29:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "EgorKhabarov",
"github_project": "table2string",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "table2string"
}