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

[BUG] rich crashes ipython when printing a traceback after due to StopIteration error #2821

Closed
2 tasks done
scottstanie opened this issue Feb 20, 2023 · 5 comments · Fixed by #2850
Closed
2 tasks done

Comments

@scottstanie
Copy link

scottstanie commented Feb 20, 2023

Describe the bug

Using %load_ext rich in python, printing a traceback will sometimes cause ipython to crash with an error RuntimeError: generator raised StopIteration

It's possible this is related to #2781, and maybe others with strange crashes/hanging?

Example code
(sorry i couldn't find one without pydantic, this was just the quickest/smallest thing related to what I was really doing)

saved into testrich.py

from pydantic import BaseModel


class Dummy(BaseModel):
    def __init__(self, **data):
        super().__init__(**data)
        self.new_attribute = "this should error due to pydantic"

then in ipython

(mapping) staniewi:data$ ipython
Python 3.10.9 | packaged by conda-forge | (main, Feb  2 2023, 20:26:08) [Clang 14.0.6 ]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import testrich

In [2]: testrich.Dummy()
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Input In [2], in <cell line: 1>()
----> 1 testrich.Dummy()

File ~/repos/sweets/testrich.py:7, in Dummy.__init__(self, **data)
      5 def __init__(self, **data):
      6     super().__init__(**data)
----> 7     self.new_attribute = "this should error due to pydantic"

File ~/miniconda3/envs/mapping/lib/python3.10/site-packages/pydantic/main.py:358, in pydantic.main.BaseModel.__setattr__()

ValueError: "Dummy" object has no field "new_attribute"

that's whats supposed to be printed. Here's with rich:

In [3]: %load_ext rich

In [4]: testrich.Dummy()
Traceback (most recent call last):
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3398, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-4-ecd4ba56830a>", line 1, in <cell line: 1>
    testrich.Dummy()
  File "/Users/staniewi/repos/sweets/testrich.py", line 7, in __init__
    self.new_attribute = "this should error due to pydantic"
  File "pydantic/main.py", line 358, in pydantic.main.BaseModel.__setattr__
ValueError: "Dummy" object has no field "new_attribute"

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 497, in tokens_to_spans
    _token_type, token = next(tokens)
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3338, in run_ast_nodes
    if await self.run_code(code, result, async_=asy):
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3420, in run_code
    self.showtraceback(running_compiled_code=True)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/traceback.py", line 130, in ipy_show_traceback
    default_showtraceback(*args, **kwargs)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 2004, in showtraceback
    self._showtraceback(etype, value, stb)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/traceback.py", line 151, in ipy_display_traceback
    excepthook(exc_tuple[0], exc_tuple[1], tb)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/traceback.py", line 102, in excepthook
    traceback_console.print(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1694, in print
    extend(render(renderable, render_options))
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1330, in render
    yield from self.render(render_output, _options)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/constrain.py", line 29, in __rich_console__
    yield from console.render(self.renderable, child_options)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/panel.py", line 220, in __rich_console__
    lines = console.render_lines(renderable, child_options, style=style)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1366, in render_lines
    lines = list(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/segment.py", line 292, in split_and_crop_lines
    for segment in segments:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/padding.py", line 97, in __rich_console__
    lines = console.render_lines(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1366, in render_lines
    lines = list(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/segment.py", line 292, in split_and_crop_lines
    for segment in segments:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1330, in render
    yield from self.render(render_output, _options)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 609, in __rich_console__
    segments = Segments(self._get_syntax(console, options))
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/segment.py", line 668, in __init__
    self.segments = list(segments)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 637, in _get_syntax
    text = self.highlight(processed_code, self.line_range)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 509, in highlight
    text.append_tokens(tokens_to_spans())
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/text.py", line 995, in append_tokens
    for content, style in tokens:
RuntimeError: generator raised StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 497, in tokens_to_spans
    _token_type, token = next(tokens)
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 2936, in _run_cell
    return runner(coro)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/async_helpers.py", line 129, in _pseudo_sync_runner
    coro.send(None)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3135, in run_cell_async
    has_raised = await self.run_ast_nodes(code_ast.body, cell_name,
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 3357, in run_ast_nodes
    self.showtraceback()
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/traceback.py", line 130, in ipy_show_traceback
    default_showtraceback(*args, **kwargs)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 2004, in showtraceback
    self._showtraceback(etype, value, stb)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/traceback.py", line 151, in ipy_display_traceback
    excepthook(exc_tuple[0], exc_tuple[1], tb)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/traceback.py", line 102, in excepthook
    traceback_console.print(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1694, in print
    extend(render(renderable, render_options))
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1330, in render
    yield from self.render(render_output, _options)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/constrain.py", line 29, in __rich_console__
    yield from console.render(self.renderable, child_options)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/panel.py", line 220, in __rich_console__
    lines = console.render_lines(renderable, child_options, style=style)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1366, in render_lines
    lines = list(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/segment.py", line 292, in split_and_crop_lines
    for segment in segments:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/padding.py", line 97, in __rich_console__
    lines = console.render_lines(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1366, in render_lines
    lines = list(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/segment.py", line 292, in split_and_crop_lines
    for segment in segments:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1330, in render
    yield from self.render(render_output, _options)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 609, in __rich_console__
    segments = Segments(self._get_syntax(console, options))
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/segment.py", line 668, in __init__
    self.segments = list(segments)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 637, in _get_syntax
    text = self.highlight(processed_code, self.line_range)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 509, in highlight
    text.append_tokens(tokens_to_spans())
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/text.py", line 995, in append_tokens
    for content, style in tokens:
RuntimeError: generator raised StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 497, in tokens_to_spans
    _token_type, token = next(tokens)
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/staniewi/miniconda3/envs/mapping/bin/ipython", line 11, in <module>
    sys.exit(start_ipython())
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/__init__.py", line 124, in start_ipython
    return launch_new_instance(argv=argv, **kwargs)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/traitlets/config/application.py", line 976, in launch_instance
    app.start()
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/terminal/ipapp.py", line 318, in start
    self.shell.mainloop()
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/terminal/interactiveshell.py", line 680, in mainloop
    self.interact()
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/terminal/interactiveshell.py", line 673, in interact
    self.run_cell(code, store_history=True)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 2881, in run_cell
    result = self._run_cell(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 2943, in _run_cell
    self.showtraceback(running_compiled_code=True)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/traceback.py", line 130, in ipy_show_traceback
    default_showtraceback(*args, **kwargs)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/IPython/core/interactiveshell.py", line 2004, in showtraceback
    self._showtraceback(etype, value, stb)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/traceback.py", line 151, in ipy_display_traceback
    excepthook(exc_tuple[0], exc_tuple[1], tb)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/traceback.py", line 102, in excepthook
    traceback_console.print(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1694, in print
    extend(render(renderable, render_options))
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1330, in render
    yield from self.render(render_output, _options)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/constrain.py", line 29, in __rich_console__
    yield from console.render(self.renderable, child_options)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/panel.py", line 220, in __rich_console__
    lines = console.render_lines(renderable, child_options, style=style)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1366, in render_lines
    lines = list(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/segment.py", line 292, in split_and_crop_lines
    for segment in segments:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/padding.py", line 97, in __rich_console__
    lines = console.render_lines(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1366, in render_lines
    lines = list(
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/segment.py", line 292, in split_and_crop_lines
    for segment in segments:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1330, in render
    yield from self.render(render_output, _options)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 609, in __rich_console__
    segments = Segments(self._get_syntax(console, options))
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/segment.py", line 668, in __init__
    self.segments = list(segments)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 637, in _get_syntax
    text = self.highlight(processed_code, self.line_range)
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/syntax.py", line 509, in highlight
    text.append_tokens(tokens_to_spans())
  File "/Users/staniewi/miniconda3/envs/mapping/lib/python3.10/site-packages/rich/text.py", line 995, in append_tokens
    for content, style in tokens:
RuntimeError: generator raised StopIteration

If you suspect this is an IPython 8.4.0 bug, please report it at:
    https://github.com/ipython/ipython/issues
or send an email to the mailing list at ipython-dev@python.org

You can print a more detailed traceback right now with "%tb", or use "%debug"
to interactively debug it.

Extra-detailed tracebacks for bug-reporting purposes can be enabled via:
    %config Application.verbose_crash=True

(mapping) staniewi:data$

Platform

Click to expand

What platform (Win/Linux/Mac) are you running on? What terminal software are you using?
Mac arm M1

(mapping) staniewi:data$ ipython
Python 3.10.9 | packaged by conda-forge | (main, Feb  2 2023, 20:26:08) [Clang 14.0.6 ]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from rich.diagnose import report
   ...: report()
╭───────────────────────── <class 'rich.console.Console'> ─────────────────────────╮
│ A high level console interface.                                                  │
│                                                                                  │
│ ╭──────────────────────────────────────────────────────────────────────────────╮ │
│ │ <console width=242 ColorSystem.TRUECOLOR>                                    │ │
│ ╰──────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                  │
│     color_system = 'truecolor'                                                   │
│         encoding = 'utf-8'                                                       │
│             file = <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'> │
│           height = 59                                                            │
│    is_alt_screen = False                                                         │
│ is_dumb_terminal = False                                                         │
│   is_interactive = True                                                          │
│       is_jupyter = False                                                         │
│      is_terminal = True                                                          │
│   legacy_windows = False                                                         │
│         no_color = False                                                         │
│          options = ConsoleOptions(                                               │
│                        size=ConsoleDimensions(width=242, height=59),             │
│                        legacy_windows=False,                                     │
│                        min_width=1,                                              │
│                        max_width=242,                                            │
│                        is_terminal=True,                                         │
│                        encoding='utf-8',                                         │
│                        max_height=59,                                            │
│                        justify=None,                                             │
│                        overflow=None,                                            │
│                        no_wrap=False,                                            │
│                        highlight=None,                                           │
│                        markup=None,                                              │
│                        height=None                                               │
│                    )                                                             │
│            quiet = False                                                         │
│           record = False                                                         │
│         safe_box = True                                                          │
│             size = ConsoleDimensions(width=242, height=59)                       │
│        soft_wrap = False                                                         │
│           stderr = False                                                         │
│            style = None                                                          │
│         tab_size = 8                                                             │
│            width = 242                                                           │
╰──────────────────────────────────────────────────────────────────────────────────╯
╭─── <class 'rich._windows.WindowsConsoleFeatures'> ────╮
│ Windows features available.                           │
│                                                       │
│ ╭───────────────────────────────────────────────────╮ │
│ │ WindowsConsoleFeatures(vt=False, truecolor=False) │ │
│ ╰───────────────────────────────────────────────────╯ │
│                                                       │
│ truecolor = False                                     │
│        vt = False                                     │
╰───────────────────────────────────────────────────────╯
╭────── Environment Variables ───────╮
│ {                                  │
│     'TERM': 'xterm-256color',      │
│     'COLORTERM': 'truecolor',      │
│     'CLICOLOR': '1',               │
│     'NO_COLOR': None,              │
│     'TERM_PROGRAM': 'iTerm.app',   │
│     'COLUMNS': None,               │
│     'LINES': None,                 │
│     'JUPYTER_COLUMNS': None,       │
│     'JUPYTER_LINES': None,         │
│     'JPY_PARENT_PID': None,        │
│     'VSCODE_VERBOSE_LOGGING': None │
│ }                                  │
╰────────────────────────────────────╯
platform="Darwin"
@github-actions
Copy link

We found the following entry in the FAQ which you may find helpful:

Feel free to close this issue if you found an answer in the FAQ. Otherwise, please give us a little time to review.

This is an automated reply, generated by FAQtory

@gerrymanoim
Copy link

I think this is the same underlying issue as #2800

@opqpop
Copy link

opqpop commented Feb 28, 2023

exact same thing is happening to me, what is the suggested fix for this?

this is breaking our prod build and we need an urgent fix, please let us know or we'll have to move off rich, thanks

im using django-rich and here's a stack trace

mark@dev22 ~/d/m/s/d/django (wafewaef)> poetry run ./manage.py test                         19:51:33
Found 10 test(s).
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
EEEEEEE..Destroying test database for alias 'default'...
Traceback (most recent call last):
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/syntax.py", line 497, in tokens_to_spans
    _token_type, token = next(tokens)
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/mark/dev/main/src/dracula/django/./manage.py", line 22, in <module>
    main()
  File "/home/mark/dev/main/src/dracula/django/./manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
    utility.execute()
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/django/core/management/commands/test.py", line 24, in run_from_argv
    super().run_from_argv(argv)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/django/core/management/base.py", line 448, in execute
    output = self.handle(*args, **options)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/django/core/management/commands/test.py", line 68, in handle
    failures = test_runner.run_tests(test_labels)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/django/test/runner.py", line 1057, in run_tests
    result = self.run_suite(suite)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/django/test/runner.py", line 979, in run_suite
    return runner.run(suite)
  File "/home/mark/.pyenv/versions/3.10.8/lib/python3.10/unittest/runner.py", line 184, in run
    test(result)
  File "/home/mark/.pyenv/versions/3.10.8/lib/python3.10/unittest/suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "/home/mark/.pyenv/versions/3.10.8/lib/python3.10/unittest/suite.py", line 122, in run
    test(result)
  File "/home/mark/.pyenv/versions/3.10.8/lib/python3.10/unittest/case.py", line 650, in __call__
    return self.run(*args, **kwds)
  File "/home/mark/.pyenv/versions/3.10.8/lib/python3.10/unittest/case.py", line 599, in run
    self._feedErrorsToResult(result, outcome.errors)
  File "/home/mark/.pyenv/versions/3.10.8/lib/python3.10/unittest/case.py", line 518, in _feedErrorsToResult
    result.addError(test, exc_info)
  File "/home/mark/.pyenv/versions/3.10.8/lib/python3.10/unittest/result.py", line 17, in inner
    return method(self, *args, **kw)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/django_rich/test.py", line 64, in addError
    self.errors.append((test, self._exc_info_to_string(err, test)))
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/django_rich/test.py", line 125, in _exc_info_to_string
    self.console.print(tb_e)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/console.py", line 1694, in print
    extend(render(renderable, render_options))
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/console.py", line 1330, in render
    yield from self.render(render_output, _options)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/constrain.py", line 29, in __rich_console__
    yield from console.render(self.renderable, child_options)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/panel.py", line 220, in __rich_console__
    lines = console.render_lines(renderable, child_options, style=style)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/console.py", line 1366, in render_lines
    lines = list(
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/segment.py", line 292, in split_and_crop_lines
    for segment in segments:
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/padding.py", line 97, in __rich_console__
    lines = console.render_lines(
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/console.py", line 1366, in render_lines
    lines = list(
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/segment.py", line 292, in split_and_crop_lines
    for segment in segments:
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/console.py", line 1330, in render
    yield from self.render(render_output, _options)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/console.py", line 1326, in render
    for render_output in iter_render:
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/syntax.py", line 609, in __rich_console__
    segments = Segments(self._get_syntax(console, options))
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/segment.py", line 668, in __init__
    self.segments = list(segments)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/syntax.py", line 637, in _get_syntax
    text = self.highlight(processed_code, self.line_range)
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/syntax.py", line 509, in highlight
    text.append_tokens(tokens_to_spans())
  File "/home/mark/.cache/pypoetry/virtualenvs/src-flPiXF7G-py3.10/lib/python3.10/site-packages/rich/text.py", line 995, in append_tokens
    for content, style in tokens:
RuntimeError: generator raised StopIteration

@github-actions
Copy link

github-actions bot commented Mar 4, 2023

I hope we solved your problem.

If you like using Rich, you might also enjoy Textual

@opqpop
Copy link

opqpop commented Mar 8, 2023

thanks, confirming it works again on latest version!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants