summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
blob: ad7af3097d1033e546e6559f3655ecab51ab9393 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
## 0.10 - Unreleased

* 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.

## 0.9 - 2015-05-01

* Add command line tool `ptable`. Usage: `ptable --csv=filename`.

## 0.8 - 2013-10-01

* 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` and `max_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.)

## 0.7 - 2013-01-01

* 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).

## 0.6 - 2012-05-05

* 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` and `clear` 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!)

## 0.5 - 2009-05-26

* Fixed a bug whereby printing with `headers=False` and `border=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. With `format=False` 
  the methods print a "bare bones" table, similar to the default 
  behaviour in 0.4.

## 0.4 - 2009-05-13

* Added `add_column` method to enable building tables up column-by-column.
* Added `print_HTML` and `get_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` and `set_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.

## 0.3 - 2009-05-01

* 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
  the `set_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!

## 0.2.1 - 2009-04-29

* 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 the `cPickle` module's `dumps`
  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!

## 0.2 - 2009-04-29

* Added `get_string` method.
* Added `__str__` method (which just calls `get_string`) to enable nice
 `print 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 to `add_row` or something else which invalidates the
  cache.

## 0.1 - 2009-02-26

* Original release.