- Now column scaling algorithm more strictly respects "max_table_width" setting.
- Also, header's width was fixed in case when "max_table_width" was given and calculated column's width lesser than this field name's length. Now pretty table just sets minimum column width to the width of it's name.
- Add command line tool
ptable
. Usage:ptable --csv=filename
.
- New
paginate
method can be used to produce strings suitable for piping to lp/lpr. - from_html now handles HTML tables with colspan, rather than choking on them.
- Added
min_width
,min_table_width
andmax_table_width
attribute/options for better control of table sizing. - Added
title
attribute/option for table titles. - When slice syntax is used to create a new sub-table out of an existing table, the rows are sorted before, not after, the slicing. The old behaviour (slice then sort) can be achieved by setting oldsortslice=True.
- The from_csv table factory now accepts CSV format parameters as keyword arguments (e.g. delimiter, doublequote, escapechar, etc.)
- Improved Python 3 compatibility.
- Improved support for non-Latin characters. Table widths should now be calculated correctly for tables with e.g. Japanese text.
- Table contents can now be read in from a .csv file
- Table contents can now be read in from a DB-API compatible cursor
- hrules attribute can now be set to HEADER, which draws a rule only under the header row
- new vrules attribute controls drawing of vertical rules and can be set to FRAME, ALL or NONE
- new header_style attribute controls formatting of text in table
headers and can be set to
cap
,title
,upper
,lower
or None - Fixed a simple bug regarding validation of max_width (thanks to Anthony Toole for pointing out this bug and providing a patch).
- Fixed a simple bug regarding initialisation of int_format value for new tables (thanks to Ingo Schmiegel for pointing out this bug!)
- Fixed a bug regarding some constructor keywords, such as
border
, being ignored (thanks to Google Code user antonio.s.messina for reporting this bug).
- Code is now simultaneously compatible with Python 2 and 3
- Replaced all setter methods with managed attributes
- All styling options can now be set persistently as managed attributes
- Added
add_style
method to make setting style options easily - Added
del_row
,clear_rows
andclear
methods to facilitate removal of data from table. - Added
copy
method to facilitate cloning of a table. - Removed caching functionality, which added complexity and fragility for relatively little gain
- Removed methods that just printed strings produced by get_string and get_html_string - just use inbuilt print!
- Improved unicode support (thanks to Google Code user ru.w31rd0 for patch!)
- Added support for decimal and floating point number formatting support (thanks to Google Code user willfurnass for the suggestion!)
- Added support for using a custom key sorting methods (thanks to Google Code user amannijhawan for the suggestion!)
- Added support for line breaks in data (suggested and implemented by Klein Stephane)
- Added support for max column widths (thanks to Tibor Arpas for the suggestion!)
- Fixed table slicing
- Fixed bug where closing
<tr/>
tags in HTML tables were not printed (thanks to Google Code user kehander for reporting this bug!) - Fixed HTML table sorting bug (thanks to Google Code user dougbeal for reporting this bug!)
- Fixed bug whereby changing field_names did not recompute widths (thanks to Google Code user denilsonsa for reporting this bug!)
- Fixed a bug whereby printing with
headers=False
andborder=False
would introduce an extraneous newline. Thanks to Alexander Lamaison for reporting this bug. - When printing with
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. - Support for Unicode has improved. Thanks to Chris Clark for submitting this improvement.
- The value of the
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. - The 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. - The print_html and get_html_string methods now, by default, do their
best to match the various formatting options in their HTML output.
They use inline CSS to adjust the alignment of data in columns, the
padding widths of columns and in some cases the border settings. You
can give either method a
format=False
attribute to turn this behaviour off if you want to do your own styling. Withformat=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. - Added
print_HTML
andget_HTML_string
methods to enable HTML table production. - Added
set_border_chars
method to enable control over characters used to draw the table border. - Added
set_left_padding
andset_right_padding
methods to allow independent padding control for both sides of a column. - Added
sortby
option to enable column sorting. - Added
header
option to enable switching off field name printing at top of table. - Modified
hrules
option to enable greater control over presence of horizontal lines. - Added
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 as a keyword argument to the constructor or after instantiation using theset_padding_width
method. The value is set to 1 by defaut. 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 key. I fixed this using the output of thecPickle
module'sdumps
function as the dictionary key instead. - Horizontal lines are now the appropriate length when the above syntax is used.
Thanks to Julien Koesten for reporting these bugs and testing the fixes almost immediately after the release of 0.2!
- Added
get_string
method. - Added
__str__
method (which just callsget_string
) to enable niceprint x
syntax. - Can now pass field names as a constructor argument.
- Return values of
get_string
are cached in a dictionary that is only cleared after a call toadd_row
or something else which invalidates the cache.
- Original release.