Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

AssertionError occurs using 3.130b1 interactive mode when pressed tab and up arrow #118877

Copy link
Copy link
Closed
@BreezeWhite

Description

@BreezeWhite
Issue body actions

Bug report

Bug description:

Hi dear core developers,

I was playing with the newest REPL v3.130b1 on my M2 MacBook Pro with macOS 14.3. I built the python binary from the source at commit b62cb5234b. It's really impressive and exciting to see how much the standard REPL has evolved in this version.

However the bug occurred while I was playing with the auto-completion on the command. Says I want to see what operations are there under datetime module, type datetime. and press Tab twice, the suggestions show up correctly. But when I try to surf the suggestions with arrow keys pressed several times, I got the AssertionError:

Python 3.13.0b1+ (heads/3.13:b62cb5234b, May 10 2024, 10:17:59) [Clang 15.0.0 (clang-1500.1.0.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
datetime.MAXYEAR        datetime.date(          datetime.time(          datetime.tzinfo(        
datetime.MINYEAR        datetime.datetime(      datetime.timedelta(                             
Traceback (most recent call last):atetime_CAPI  datetime.timezone(                              
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/Users/thmac-02/cpython/Lib/_pyrepl/__main__.py", line 47, in <module>
    interactive_console()
    ~~~~~~~~~~~~~~~~~~~^^
  File "/Users/thmac-02/cpython/Lib/_pyrepl/__main__.py", line 44, in interactive_console
    return run_interactive(mainmodule)
  File "/Users/thmac-02/cpython/Lib/_pyrepl/simple_interact.py", line 138, in run_multiline_interactive_console
    statement, contains_pasted_code = multiline_input(more_lines, ps1, ps2)
                                      ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/thmac-02/cpython/Lib/_pyrepl/readline.py", line 301, in multiline_input
    return reader.readline(), reader.was_paste_mode_activated
           ~~~~~~~~~~~~~~~^^
  File "/Users/thmac-02/cpython/Lib/_pyrepl/reader.py", line 652, in readline
    self.handle1()
    ~~~~~~~~~~~~^^
  File "/Users/thmac-02/cpython/Lib/_pyrepl/reader.py", line 635, in handle1
    self.do_cmd(cmd)
    ~~~~~~~~~~~^^^^^
  File "/Users/thmac-02/cpython/Lib/_pyrepl/reader.py", line 589, in do_cmd
    self.update_cursor()
    ~~~~~~~~~~~~~~~~~~^^
  File "/Users/thmac-02/cpython/Lib/_pyrepl/reader.py", line 499, in update_cursor
    self.cxy = self.pos2xy()
               ~~~~~~~~~~~^^
  File "/Users/thmac-02/cpython/Lib/_pyrepl/reader.py", line 471, in pos2xy
    assert 0 <= pos <= len(self.buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

Not sure if this is the intended behavior of using the new REPL, but I still hope this could be solved as this can largely improve the user experience of using the new auto-completion feature.

Thanks for all your hard works, the new python features are really awesome. Can't wait to see the final release ^^ It's my first issue sending to cpython, and sorry if there is any missing information I did not provide.

CPython versions tested on:

3.13

Operating systems tested on:

macOS

Linked PRs

Metadata

Metadata

Assignees

Labels

3.13bugs and security fixesbugs and security fixestopic-replRelated to the interactive shellRelated to the interactive shelltype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.