Textualize / rich

Rich is a Python library for rich text and beautiful formatting in the terminal.
https://rich.readthedocs.io/en/latest/
MIT License
49.73k stars 1.73k forks source link

[BUG] Rich library with Jupyter Notebooks in VSCode generates new Output Cells for each individual output #3483

Open Amodh1257 opened 2 months ago

Amodh1257 commented 2 months ago

Hi all, I couldn't find anyone talking about this anywhere else online, so I decided to post this here as a potential bug. Not quite sure what is going wrong, could even be a problem with my setup specifically. I'm running a .ipynb Jupyter Notebook on VSCode with the standard Jupyter extension pack provided by Microsoft.

Printing an normal output works fine, but when I import and use anything from the rich library (progress bar, rich print etc.), every subsequent line printed to the notebook generates a new output cell.

image

When you print a ton of stuff in one cell, notebooks limit how many lines you can see at once and adds a scrollbar. This feature doesn't work when every printed line is in its own output cell and makes reading outputs and scrolling through notebooks extremely tedious.

This isn't an issue when executing similar code in google colab, so I believe it to be a problem native to VSCode's inbuilt notebook output renderer. This is the renderer I am currently using: the only other one natively provided being text/plain, which doesn't render many rich elements (such as progress bars) at all. image I have scoured the web for better Jupyter notebook output renderers to no avail. If there is one that works better for rich, please let me know!

Not sure how to fix this if it is an issue on my end, gave it a bunch of tries to no avail. Any help would be wonderful. Thanks! Edit: Wanted to add that one such fix I tried was using the rich.jupyter library. Unfortunately, the print statement from there causes the exact same issue as well.

P.S. I'm new to github in general and a novice coder so forgive me if the report is crude or dated or if there is something I missed.

Platform Information

Click to expand ```python # Results from.... from rich.diagnose import report report() # ....printed below ``` ``` ╭──────────────────────── ────────────────────────╮ │ A high level console interface. │ │ │ │ ╭────────────────────────────────────────────────────────────────────────────╮ │ │ │ │ │ │ ╰────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ color_system = 'truecolor' │ │ encoding = 'utf-8' │ │ file = │ │ height = 100 │ │ is_alt_screen = False │ │ is_dumb_terminal = False │ │ is_interactive = False │ │ is_jupyter = True │ │ is_terminal = False │ │ legacy_windows = False │ │ no_color = False │ │ options = ConsoleOptions( │ │ size=ConsoleDimensions(width=115, height=100), │ │ legacy_windows=False, │ │ min_width=1, │ │ max_width=115, │ │ is_terminal=False, │ │ encoding='utf-8', │ │ max_height=100, │ │ justify=None, │ │ overflow=None, │ │ no_wrap=False, │ │ highlight=None, │ │ markup=None, │ │ height=None │ │ ) │ │ quiet = False │ │ record = False │ │ safe_box = True │ │ size = ConsoleDimensions(width=115, height=100) │ │ soft_wrap = False │ │ stderr = False │ │ style = None │ │ tab_size = 8 │ │ width = 115 │ ╰────────────────────────────────────────────────────────────────────────────────╯ ╭─── ────╮ │ Windows features available. │ │ │ │ ╭───────────────────────────────────────────────────╮ │ │ │ WindowsConsoleFeatures(vt=False, truecolor=False) │ │ │ ╰───────────────────────────────────────────────────╯ │ │ │ │ truecolor = False │ │ vt = False │ ╰───────────────────────────────────────────────────────╯ ╭────── Environment Variables ───────╮ │ { │ │ 'TERM': 'xterm-color', │ │ 'COLORTERM': None, │ │ 'CLICOLOR': '1', │ │ 'NO_COLOR': None, │ │ 'TERM_PROGRAM': None, │ │ 'COLUMNS': None, │ │ 'LINES': None, │ │ 'JUPYTER_COLUMNS': None, │ │ 'JUPYTER_LINES': None, │ │ 'JPY_PARENT_PID': None, │ │ 'VSCODE_VERBOSE_LOGGING': None │ │ } │ ╰────────────────────────────────────╯ platform="Windows" ```
github-actions[bot] commented 2 months ago

Thank you for your issue. Give us a little time to review it.

PS. You might want to check the FAQ if you haven't done so already.

This is an automated reply, generated by FAQtory