The ptpython input UI will now run in a separate thread. This makes it
possible to properly embed ptpython in an asyncio application, without
having to deal with nested event loops (which asyncio does not support).
The "eval" part doesn't anymore take place within a ptpython coroutine, so
it can spawn its own loop if needed. This also fixes asyncio.run() usage
in the REPL, which was broken before.
➕ Added syntax highlighting and autocompletion for !-style system commands.
🛠 Fixes:
✂ Remove unexpected additional line after output.
🛠 Fix system prompt. Accept !-style inputs again.
Don't execute PYTHONSTARTUP when -i flag was given.