Closed
Description
This issue will track all the different steps to bootstrap a new Python REPL with many new features. The target of this issue is that we can reach a point where new contributions can be made easily to the REPL once is written in pure Python. This issue only coveres the initial ground work to reach this status.
Tasks to be done:
- Redirect the parser and the main module to a new Python module.
- Fallback to the previous tokenizer-based REPL if the terminal is not a tty (and for backwards compat reasons)
- Bootstrap a new REPL module (based on a trimmed version pypy's pyrepl module).
- Ensure that the basic features work:
- History
- Completions
- Ctrl-r and Ctrl-s
Linked PRs
- gh-111201: A new Python REPL #111567
- Add Lysandros Nikolaou to the News entry of gh-111201 #118616
- gh-111201: Fix event queue tests for pyrepl #118635
- gh-111201: Use a more common constant in completion tests in test_pyrepl #118638
- gh-111201: Add tests for unix console class in pyrepl #118653
- gh-111201: Allow bracketed paste to work #118700
- gh-111201: Add more tests to test_pyrepl to cover key translation #118705
- gh-111201: Allow pasted code to contain multiple statements in the REPL #118712
- gh-111201: Remove readline dependency from the PyREPL #119262
- gh-111201: Add append to screen method to avoid recalculation #119274
- gh-111201: Speed up paste mode in the REPL #119341
- gh-111201: auto-indentation in _pyrepl #119348
- [3.13] gh-111201: Remove readline dependency from the PyREPL (GH-119262) #119403
- [3.13] gh-111201: Add append to screen method to avoid recalculation (GH-119274) #119405
- [3.13] gh-111201: auto-indentation in _pyrepl (GH-119348) #119427
- gh-111201: Use calc_complete_screen after bracketed paste in PyREPL #119432
- [3.13] gh-111201: Use calc_complete_screen after bracketed paste in PyREPL (GH-119432) #119439
- gh-111201: Support pyrepl on Windows #119559
- gh-111201: Improve pyrepl auto indentation #119606
- [3.13] gh-111201: Improve pyrepl auto indentation (GH-119606) #119833
- gh-111201: [pyrepl] Ensure optional platform-specific imports are optional #119834
- gh-111201: Skip pyrepl Windows tests earlier #119848
- [3.13] gh-111201: Support pyrepl on Windows (GH-119559) #119850
- [3.13] gh-111201: Skip pyrepl Windows tests earlier (#119848) #119924
- gh-111201: fix auto-indent in pyrepl for muliple pound comments #123196
- [3.13] gh-111201: fix auto-indent in pyrepl for muliple pound comments (GH-123196) #123764