I would like an updated Python REPL (in Windows). The existing solutions don't push the right buttons for me. I've looked at IdleX, IPython, BPython, IPython+JupyterLab, IPython+VSCode, ptpython, and none of them meet my desires:

  • Support for all officially supported versions of Python (3.6.x and on, as of this writing; I only use the latest, but still)
  • Syntax Highlighting (built-in in IDLE, available with finagling in VSCode and Jupyter)
  • Command history (limited in IDLE, better with IdleX and BPython)
  • Support for CJK script and/or emojis (support available in Windows Terminal console REPL)
  • Support for rich terminal coloring, preferably 24-bit color (256 colors available in Windows Terminal console REPL)
  • Support for Type Hinting autocompletion and pre-execution warnings/errors (haven't seen this implemented anywhere yet) (this now is in VS Code's pylance)
  • Auto-PEP8 fixing (now in VS Code)
  • A "package manager": search/browse pypi and/or GitHub and/or Unofficial Windows Binaries, install with pip, view dependency trees; suggested packages
  • Module creation validation
  • Package builder
  • Executable generation?
  • Cython and Pypy3 support
  • Embeddable in VSCode
  • Hook to run code at shell restart

This list may be extended as I think of other things, but/and I also think in order to see most of this I'll need to write it myself. Ideally, I'd write it with Pypy for speed and cross-platform capabilities, but I may resort to a few other languages as needed to piece it all together (plain ol' Python, Cython, C, C++, C#, TypeScript, Lua, whatever it takes). I  just thought of a genius idea: write it as an extension for VS Code! That way I get to keep the use of my favorite editor, which already deals with some of this, and add the extra bits and pieces! Some bits, like the package manager, can easily be separated from the rest. On top of this, however, I'll need to find time to write it! That's the hardest part!

The most important part, though, is the name. I'm considering the following:

  • IDLE Reloaded
  • Ideal (already used by a package on pypi for something completely different)
  • Ideally
  • IdleY (derivative, but then, most of these are)
  • Idol (already used by a package on pypi for something completely different)
  • ???