{"id":2310,"library":"terminaltables","title":"terminaltables","description":"terminaltables is a Python library designed to easily draw tables in terminal/console applications from a nested list of strings. It supports multi-line rows and various table styles like ASCII, single-line, double-line, and GitHub Flavored Markdown. The current version is 3.1.10, but the project is no longer actively maintained.","status":"abandoned","version":"3.1.10","language":"en","source_language":"en","source_url":"https://github.com/Robpol86/terminaltables","tags":["terminal","table","ascii","console","cli","formatting"],"install":[{"cmd":"pip install terminaltables","lang":"bash","label":"PyPI"}],"dependencies":[],"imports":[{"symbol":"AsciiTable","correct":"from terminaltables import AsciiTable"},{"note":"UnixTable was renamed to SingleTable in v2.0.0.","wrong":"from terminaltables import UnixTable","symbol":"SingleTable","correct":"from terminaltables import SingleTable"},{"note":"WindowsTable (and WindowsTableDouble) were renamed to DoubleTable in v2.0.0.","wrong":"from terminaltables import WindowsTable","symbol":"DoubleTable","correct":"from terminaltables import DoubleTable"},{"symbol":"GithubFlavoredMarkdownTable","correct":"from terminaltables import GithubFlavoredMarkdownTable"}],"quickstart":{"code":"from terminaltables import AsciiTable\n\ntable_data = [\n    ['Heading1', 'Heading2', 'Heading3'],\n    ['Row1 Col1', 'Row1 Col2', 'Row1 Col3'],\n    ['Row2 Col1', 'Row2 Col2 with a long text that wraps', 'Row2 Col3'],\n    ['Row3 Col1', 'Row3 Col2', 'Row3 Col3']\n]\n\ntable = AsciiTable(table_data)\n# You can also set a title\ntable.title = 'My Awesome Table'\n\n# Adjust column alignment (l=left, c=center, r=right)\n# table.justify_columns = {'Heading1': 'left', 'Heading2': 'center'}\n\nprint(table.table)","lang":"python","description":"This quickstart demonstrates how to create a basic ASCII table using `AsciiTable` by providing a list of lists. It also shows how to set a table title. Other table types like `SingleTable` and `DoubleTable` are used similarly."},"warnings":[{"fix":"Migrate to `terminaltables3` by installing it and replacing `from terminaltables import ...` with `from terminaltables3 import ...`.","message":"The `terminaltables` project (version 3.1.10 and earlier) is no longer actively maintained since December 2021. Users are strongly encouraged to consider using `terminaltables3` (`pip install terminaltables3`), which is a maintained fork designed to be a drop-in replacement.","severity":"breaking","affected_versions":"<=3.1.10"},{"fix":"Use `SingleTable` instead of `UnixTable`. Use `DoubleTable` instead of `WindowsTable` or `WindowsTableDouble`.","message":"Classes `UnixTable`, `WindowsTable`, and `WindowsTableDouble` were removed and replaced.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Review your code for direct usage of these properties/methods and adapt to the current API, which handles internal data formatting differently. The `table` property should be used to retrieve the rendered table string.","message":"The `padded_table_data` property and `join_row()` method were removed.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Ensure your project runs on Python 2.7+ or Python 3.3+. Modern usage should target Python 3.","message":"Python 2.6 support was removed.","severity":"breaking","affected_versions":">=3.1.0"},{"fix":"Aggregate all data into a single `table_data` list (or similar structure) first, then create and print a single `AsciiTable` instance outside the loop to produce one continuous table.","message":"When generating multiple tables in a loop, a common mistake is to create a new `table_data` list and `AsciiTable` object in each iteration. This results in separate, small tables being printed.","severity":"gotcha","affected_versions":"All"}],"env_vars":null,"last_verified":"2026-04-09T00:00:00.000Z","next_check":"2026-07-08T00:00:00.000Z"}