Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

maxcolwidths isn't properly respected: extra whitespace is added #354

Open
yurivict opened this issue Nov 14, 2024 · 0 comments
Open

maxcolwidths isn't properly respected: extra whitespace is added #354

yurivict opened this issue Nov 14, 2024 · 0 comments

Comments

@yurivict
Copy link

Testcase:

from tabulate import tabulate

headers = ['Header#1', 'Header#2', 'Header#3']
data = []
data.append(['Alpha beta gama zeta omega', 'The weather was exceptionally good that day again', 'The files were concatenated and archived for posterity.'])
data.append(['Delta omega beta alpha nu and the rest', 'The weather was exceptionally good that day', 'They decided to engage in many businesses and all of them were successful.'])

print(tabulate(
    data,
    headers=headers,
    tablefmt='fancy_grid',
    maxcolwidths=[None, None, 8]))

The output:

╒════════════════════════════════════════╤═══════════════════════════════════════════════════╤════════════╕
│ Header#1                               │ Header#2                                          │ Header#3   │
╞════════════════════════════════════════╪═══════════════════════════════════════════════════╪════════════╡
│ Alpha beta gama zeta omega             │ The weather was exceptionally good that day again │ The        │
│                                        │                                                   │ files      │
│                                        │                                                   │ were con   │
│                                        │                                                   │ catenate   │
│                                        │                                                   │ d and      │
│                                        │                                                   │ archived   │
│                                        │                                                   │ for post   │
│                                        │                                                   │ erity.     │
├────────────────────────────────────────┼───────────────────────────────────────────────────┼────────────┤
│ Delta omega beta alpha nu and the rest │ The weather was exceptionally good that day       │ They       │
│                                        │                                                   │ decided    │
│                                        │                                                   │ to         │
│                                        │                                                   │ engage     │
│                                        │                                                   │ in many    │
│                                        │                                                   │ business   │
│                                        │                                                   │ es and     │
│                                        │                                                   │ all of     │
│                                        │                                                   │ them       │
│                                        │                                                   │ were suc   │
│                                        │                                                   │ cessful.   │
╘════════════════════════════════════════╧═══════════════════════════════════════════════════╧════════════╛

The last column in the output has 2 extra spaces.
The data was wrapped at the requested column width of 8, but then 2 extra spaces were added.

This is important because maxcolwidths can be (and is in my case) calculated based on the actual terminal width, and adding extra space makes the table to overflow the terminal.

Version: 0.9.0
Python 3.11 (3.9 works the same way)

@yurivict yurivict changed the title maxcolwidths isn't properly respected: extra whitespace is left maxcolwidths isn't properly respected: extra whitespace is added Nov 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant