NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #487 most downloaded on PyPI
A simple Python library for easily displaying tabular data in a visually appealing ASCII table format
Last release 3 months ago
22 Jun 2026
Ships fairly regularly
a new release about every 3 months
Some releases are documented
notes for 18 of 43 stable releases
Nothing withdrawn
no release was ever pulled
17 years old
43 releases · first in 2009
Performance: deprecate and defer import of OptionsType ( #462 ) @hugovk
int_format, float_format and custom_format for CSV (#448) @hugovkcustom_formatter (#425) @stuertzpaginate() (#420) @stuertzcustom_format (#405) @stuertzcolortable (#459) @jorenhamre.split with str.split and remove re import (#443) @hugovkOptionsType (#462) @hugovkTableHandler (#460) @hugovkalign/valign keys when field_names are renamed (#465) @SAY-5horizontal_align_char getter (#445) @hugovkheader_horizontal_char and remove a duplicate docstring line (#467) @Labib-Bin-SalamOne column per quarter.
Add support for Python 3.15 (and test 3.13t-3.15t) ( #413 ) @hugovk
None check (#395) @hugovkSupport OSC 8 hyperlinks ( #380 ) @hugovk
Fix IndexError for add_rows() with an empty list ( #378 ) @hugovk
Add support for PyPy3.11 ( #375 ) @hugovk
add_rows() (#369) @stuertzrow_filter option (#359) @stuertzwarnings imports (#372) @hugovkrange (#371) @hugovkAdd missing quote to deprecation warning ( #351 ) @cdce8p
Emit DeprecationWarning s for hrule and tableStyle constants ( #329 ) @cdce8p
ColorTable (#312) @Bikes4FunIntEnum for HRuleStyle and VRuleStyle (#327)IntEnum for Table styles (#326)OptionsType (#334)Align, VAlign, HeaderStyle (#325)TableHandler type annotations (#320)RowType in __all__ (#333)__version__ at build to avoid slow importlib.metadata call (#321) @hugovkAttest build provenance of artifacts ( #308 ) @hugovk
Fix typo in README.md ( #302 ) @denballakh
README.md (#302) @denballakhNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
https://github.com/prettytable/prettytable/releases
See GitHub Releases:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Code is now simultaneously compatible with Python 2 and 3
add_style method to make setting style options easilydel_row, clear_rows and clear methods to facilitate removal of data from
table.copy method to facilitate cloning of a table.get_string and
get_html_string - just use inbuilt print!<tr/> tags in HTML tables were not printed (thanks to Google
Code user kehander for reporting this bug!)Fixed a bug whereby printing with headers=False and border=False would introduce an extraneous newline. Thanks to Alexander Lamaison for reporting thi
headers=False and border=False would introduce
an extraneous newline. Thanks to Alexander Lamaison for reporting this bug.headers=False, column widths will now be reduced as appropriate
in columns where the field name is wider than the data. Thanks to Alexander Lamaison
for suggesting this behaviour.border argument now correctly controls the presence of a border
when printing HTML tables with print_html or get_html_string, instead of being
incorrectly ignored. Thanks to Chris Clark for fixing this.print_html and get_html_string methods now accept an attributes argument
which is a dictionary of name/value pairs to be placed inside the <table> tag (so
you can, e.g. set class, name or id values in order to style your table with
CSS). Thanks to Chris Clark for submitting this feature.format=False attribute to turn this
behaviour off if you want to do your own styling. With format=False the methods
print a "bare bones" table, similar to the default behaviour in 0.4.Added add_column method to enable building tables up column-by-column.
add_column method to enable building tables up column-by-column.print_HTML and get_HTML_string methods to enable HTML table production.set_border_chars method to enable control over characters used to draw the
table border.set_left_padding and set_right_padding methods to allow independent padding
control for both sides of a column.sortby option to enable column sorting.header option to enable switching off field name printing at top of table.hrules option to enable greater control over presence of horizontal lines.border option to enable switching off all line printing.Thanks to Tim Cera, Chris Clark, Alexander Lamaison for suggesting and helping to test many of the new features in this release.
Added padding_width option to control the number of spaces between the vertical line rules at the edges of a column and its content. This can be set a
padding_width option to control the number of spaces between the vertical line
rules at the edges of a column and its content. This can be set as a keyword argument
to the constructor or after instantiation using the set_padding_width method. The
value is set to 1 by default. If your table is too wide for a small screen with this
value, setting it to 0 might help you squeeze it in.Thanks to Chris Clark for contributing a patch against 0.2.1 to add this feature!
Caching no longer breaks when using the printt(fields=[...]) syntax. The list of fields was not hashable and hence could not be used as a dictionary k
printt(fields=[...]) syntax. The list of
fields was not hashable and hence could not be used as a dictionary key. I fixed this
using the output of the cPickle module's dumps function as the dictionary key
instead.Thanks to Julien Koesten for reporting these bugs and testing the fixes almost immediately after the release of 0.2!
Added __str__ method (which just calls get_string) to enable nice print x syntax.
get_string method.__str__ method (which just calls get_string) to enable nice print x
syntax.get_string are cached in a dictionary that is only cleared after a
call to add_row or something else which invalidates the cache.- Original release
Your coding agent can read these notes before it upgrades. Set up the MCP server →