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

IndexError: list index out of range when using inspect(pyparsing, all=True) #2284

Closed
tddschn opened this issue May 19, 2022 · 2 comments · Fixed by #2294
Closed

IndexError: list index out of range when using inspect(pyparsing, all=True) #2284

tddschn opened this issue May 19, 2022 · 2 comments · Fixed by #2294
Assignees
Labels
bug Something isn't working

Comments

@tddschn
Copy link

tddschn commented May 19, 2022

OS: macOS Monterey 12.4
CPU: Intel
Python version:

Python 3.10.4 | packaged by conda-forge | (main, Mar 24 2022, 17:43:32) [Clang 12.0.1 ]

rich and pyparsing version: 12.2.0 and 3.0.8

❯ conda list rich
# packages in environment at /usr/local/Caskroom/miniconda/base:
#
# Name                    Version                   Build  Channel
rich                      12.2.0             pyhd8ed1ab_0    conda-forge
❯ conda list pyparsing
# packages in environment at /usr/local/Caskroom/miniconda/base:
#
# Name                    Version                   Build  Channel
pyparsing                 3.0.8              pyhd8ed1ab_0    conda-forge

Traceback:

$ python3 -c "import pyparsing; from rich import inspect; inspect(pyparsing, all=True)" # similar error when using `methods=True`

Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import pyparsing; from rich import inspect; inspect(pyparsing, all=True)
                                                │       └ <module 'pyparsing' from '/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/pyparsing/__init__.py'>
                                                └ <function inspect at 0x10849e5f0>
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/__init__.py", line 168, in inspect
    _console.print(_inspect)
    │              └ <rich._inspect.Inspect object at 0x1084b5b70>
    └ <console width=160 None>
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/console.py", line 1752, in print
    extend(render(renderable, render_options))
    │      │      │           └ ConsoleOptions(size=ConsoleDimensions(width=160, height=48), legacy_windows=False, min_width=1, max_width=160, is_terminal=False...
    │      │      └ <rich.panel.Panel object at 0x1087b9ed0>
    │      └ <bound method Console.render of <console width=160 None>>
    └ <built-in method extend of list object at 0x1087d9340>
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/console.py", line 1390, in render
    for render_output in iter_render:
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/panel.py", line 175, in __rich_console__
    lines = console.render_lines(renderable, child_options, style=style)
            │                    │           │                    └ Style()
            │                    │           └ ConsoleOptions(size=ConsoleDimensions(width=160, height=48), legacy_windows=False, min_width=158, max_width=158, is_terminal=Fal...
            │                    └ Padding(<rich.console.Group object at 0x1087ba320>, (0,1,0,1))
            └ <console width=160 None>
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/console.py", line 1425, in render_lines
    lines = list(
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/segment.py", line 288, in split_and_crop_lines
    for segment in segments:
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/console.py", line 1390, in render
    for render_output in iter_render:
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/padding.py", line 97, in __rich_console__
    lines = console.render_lines(
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/console.py", line 1425, in render_lines
    lines = list(
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/segment.py", line 288, in split_and_crop_lines
    for segment in segments:
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/console.py", line 1394, in render
    yield from self.render(render_output, _options)
               │           │              └ ConsoleOptions(size=ConsoleDimensions(width=160, height=48), legacy_windows=False, min_width=156, max_width=156, is_terminal=Fal...
               │           └ <rich.table.Table object at 0x1087ba2f0>
               └ <console width=160 None>
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/console.py", line 1390, in render
    for render_output in iter_render:
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/table.py", line 505, in __rich_console__
    yield from self._render(console, render_options, widths)
               │            │        │               └ [31, 125]
               │            │        └ ConsoleOptions(size=ConsoleDimensions(width=160, height=48), legacy_windows=False, min_width=156, max_width=156, is_terminal=Fal...
               │            └ <console width=160 None>
               └ <rich.table.Table object at 0x1087ba2f0>
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/table.py", line 818, in _render
    lines = console.render_lines(
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/console.py", line 1425, in render_lines
    lines = list(
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/segment.py", line 288, in split_and_crop_lines
    for segment in segments:
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/console.py", line 1390, in render
    for render_output in iter_render:
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/padding.py", line 97, in __rich_console__
    lines = console.render_lines(
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/console.py", line 1425, in render_lines
    lines = list(
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/segment.py", line 288, in split_and_crop_lines
    for segment in segments:
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/console.py", line 1390, in render
    for render_output in iter_render:
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/text.py", line 632, in __rich_console__
    lines = self.wrap(
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/text.py", line 1155, in wrap
    for line in self.split(allow_blank=True):
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/text.py", line 1021, in split
    line for line in self.divide(flatten_spans()) if line.plain != separator
  File "/usr/local/Caskroom/miniconda/base/lib/python3.10/site-packages/rich/text.py", line 1091, in divide
    line_start, line_end = line_ranges[end_line_no]
    │           │          │           └ 13
    │           │          └ [(0, 252), (252, 253), (253, 318), (318, 319), (319, 388), (388, 389), (389, 447), (447, 448), (448, 508), (508, 509), (509, 577...
    │           └ 588
    └ 578
IndexError: list index out of range
@olivierphi
Copy link
Contributor

@willmcgugan As discussed, I reverted the change on the Text class (which stills strip control spaces) and moved my replacement of control code with their "readable" equivalents to the _inspect module 🙂 #2294

@github-actions
Copy link

Did I solve your problem?

Why not buy the devs a coffee to say thanks?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants