I understand your points (and it would be incredibly easier to support PrettyTables.jl without those features ). However, PrettyTables.jl is being used to a very wide audience. I have received tons of feature requests, which includes summary rows and columns.
My main use case (printing satellite telemetry data) is quite opposite. A summary column would be very important because it can be used to indicate possible problems in a frame.
I agree with the concerns about summary statistics — IMO these should not be displayed by default. I would look for a tool like PrettyTables.jl to display tables of my own creation and not try to make guesswork at what my table “really” should have been.
I feel like @pdeffebach and probably even more. Would it be possible to have a base/core module that prints text only? I mean a base module that has no dependencies and upon which all other options/backends build up as optional extensions?
Sure, but it feels like calculating summary statistics is a step too far. It’s pretty easy to push a few rows to the end of a table yourself. I don’t see why this needs to be automated by PrettyTables.
Actually is not a summary statistics, it is a function that you can do whatever you want. Let’s say your software provides a huge number of data in a table, using a format that you cannot modify, but it is compatible with Tables.jl. You can use this feature to provide a summary over the entire row / column.
The API is just f(data, i) where i is the row or column.
Furthermore, since those are different fields, we can have very nice API to decorate those rows and columns to make the presentation nicer for publication.
In my case, I will use those fields to check for occurrences in satellite telemetry.
However… I am really thinking of removing the summary columns and let only the summary rows. It seems that the use cases are indeed small and it will add a significant amount of work in each backend (mainly in text).
I’m glad PrettyTables wouldn’t be doing too much work on it’s own.
I think this discussion really highlights the need for better table-viewing capabilities. Thanks to you we have TerminalPager.jl. I maintain FloatingTableView.jl (but it might be better to say it is unmaintained, since Blink.jl has fallen by the wayside). Neither of these options are very snappy for large tables.
If someone has the funding and time, they should implement a way to use QT’s lazy table view to look at a large data set, which is what Stata uses to have such a good data viewer.
This is one feature I might be able to solve with TerminalPager.jl using the new version of PrettyTables.jl. If we fix the size of the columns, we can render the chunks of tabular data so that the user can scroll without waiting for the entire table to be rendered.
My idea is to create a package called TerminalTables.jl or something that uses the algorithms in TerminalPager.jl to deploy a system for rendering tables using PrettyTables to the terminal in a “lazy” manner.
The markdown back end is finished! Since now it is easier to test PrettyTables.jl v3 in REPL, it might be a good time for people who use PrettyTables.jl to test the new API (branch v3). We can still make some minor adjustments
Me too! However, most of the time Column X occupies too much space in the terminal For example, if you have a matrix with 15 columns, that requires 45 additional spaces.
Any way, you can change it by passing column_labels.