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).
I would like to see a new REPL (read, evaluate, print, loop) for the Python interpreter if the interpreter goes by a different name. Two other major Python interpreters also exist, and they already use other names ("bpython" and "ipython"). I would recommend forking the current REPL and renaming the interpreter with the new REPL to "zpython" instead. Also, I would like to see a built-in "clear()" function in the REPL as I already encounter with the "exit()" function and other REPL-specific functions.
Activity
pablogsal commented on Oct 23, 2023
If you want to help with this endeavour, please mention it here so we can coordinate everyone!
pablogsal commented on Oct 23, 2023
I have a initial version that we can start building upon, I will create a PR shortly.
tomasr8 commented on Oct 23, 2023
I learned about this from the "core.py" podcast and it sounds like a great idea! I'd be happy help with this effort :)
pythongh-111201: A new Python REPL
vstinner commented on Nov 1, 2023
Do you mean not using _pyrepl? Can _pyrepl be used without readline nor tty?
pablogsal commented on Nov 1, 2023
It needs at least a tty yes. Readline can be lifted but I am not sure yet
pythongh-111201: A new Python REPL
novaTopFlex commented on Apr 28, 2024
I would like to see a new REPL (read, evaluate, print, loop) for the Python interpreter if the interpreter goes by a different name. Two other major Python interpreters also exist, and they already use other names ("bpython" and "ipython"). I would recommend forking the current REPL and renaming the interpreter with the new REPL to "zpython" instead. Also, I would like to see a built-in "clear()" function in the REPL as I already encounter with the "exit()" function and other REPL-specific functions.
gh-111201: A new Python REPL (GH-111567)
Add Lysandros Nikolaou to the News entry of pythongh-111201
Add Lysandros Nikolaou to the News entry of pythongh-111201
theLastOfCats commented on May 5, 2024
Big feature without PEP?
Add Lysandros Nikolaou to the News entry of gh-111201 (#118616)
116 remaining items
pythongh-111201: Speed up paste mode in the REPL (python#119341)
pythongh-111201: Use calc_complete_screen after bracketed paste in Py…
pythongh-111201: Support pyrepl on Windows (python#119559)
pythongh-111201: Improve pyrepl auto indentation (python#119606)
pythongh-111201: [pyrepl] Ensure optional platform-specific imports a…
pythongh-111201: Skip pyrepl Windows tests earlier (python#119848)
pythongh-111201 fix auto-indent in pyrepl for muliple pound comments
pythongh-111201: fix auto-indent in pyrepl for muliple pound comments
gh-111201: fix auto-indent in pyrepl for muliple pound comments (#123196
pythongh-111201: fix auto-indent in pyrepl for muliple pound comments (…
[3.13] gh-111201: fix auto-indent in pyrepl for muliple pound comments (
lysnikolaou commented on Sep 23, 2024
I think we can close this and handle the rest of the bugs in individual issues. Feel free to re-open if you feel otherwise.
0dminnimda commented on Oct 15, 2024
Thanks to all the participants, this is amazing! I really enjoy its increased portability!
HarbingerOfFire commented on May 24, 2025
I absolutely love this change! I was using 3.12 and was thinking about making the change myself when I found this. Thank you all for your dedication!