[reportlab-users] Ammendment: Allow Blank Cells in Platypus Table
plus None Comparison Check
Andy Robinson
andy at reportlab.com
Thu May 4 20:00:45 EDT 2006
Benn wrote:
> Hey All,
>
> Sorry about the duplicate post previous to this.
>
> I did a bit more of my homework and put together a proper test case, in the
> process (naturally) identifying a few discrepancies.
>
> The Table() now accepts as data any mixture of lists or tuples (as well as,
> presumably, other iteratable data), proper handling of None, and support for
> partially filled in rows throughout the datasource.
>
For separate but coincidental reasons, I had to check something in just
now on the trunk to handle unicode strings in table cells.
str(u'Hello') is fine, but if you have non-ascii input then it blew up.
A new method in Table is called once which does what one might call
normalizeData(self, matrix) -> newMatrix
I made it do None -> '' as well as unicode -> utf8, but did not do
str() on everything else, as we accept lists/tuples of flowables as
allowed 'cell values', and possibly some other weird stuff when tables
split over pages. I'll get a colleague to look at your patch in the
morning and see if it's safe in this respect or needs some tweaks. (And
thanks for the test case updates!)
The feature I am not sure about is whether to right-pad rows which are
too short. This might indicate faulty data or algorithms the user might
want to know about, and can easily be accomplished by a library function
users call if/whn needed. If your data comes from an SQL database, the
cells are usually all there; on the other hand is you parsed a CSV or
Excel sheet, you might well have missing rightmost cells.
What do people think? Should tables accept occasional 'short rows' and
pad to the right with empty cells, or be strict about demanding
rectangular input of the correct number of columns?
- Andy
More information about the reportlab-users
mailing list