Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dropping frontends #820

Open
supakeen opened this issue Jul 12, 2020 · 1 comment
Open

Dropping frontends #820

supakeen opened this issue Jul 12, 2020 · 1 comment
Assignees
Labels
Milestone

Comments

@supakeen
Copy link
Member

@supakeen supakeen commented Jul 12, 2020

Since we have a ticket to track dropping Python 2 support in #819 in 0.21 I thought it'd be OK to have a ticket to track dropping support for the various backends bpython currently supports.

The current backends we 'support' (they are in various state of support hence the scare quotes):

  1. curtsies
  2. cli (deprecation warning since 0.19)
  3. urwid (deprecation warning since 0.19)

Of these I believe the curses backend is required to support Windows, the urwid backend is required to support integration with Twisted's reactor (see #803).

I'd want to support both of these usecases in the curtsies frontend, I personally mostly care about integration with event loops as Python has added this natively by running -m asyncio.

Is there anything I am lacking in regards to unique features so I can make a plan of attack @sebastinas @thomasballinger ?

More related tickets: #797

@supakeen supakeen added the proposal label Jul 12, 2020
@supakeen supakeen self-assigned this Jul 12, 2020
@supakeen supakeen added this to the release-0.21 milestone Jul 12, 2020
@thomasballinger
Copy link
Member

@thomasballinger thomasballinger commented Jul 13, 2020

Tracking this is a great idea.

I think the Windows support story has changed somewhat since Windows Subsystem for Linux (WSL) became a popular way to use Python with Windows, if the goal were to support that in Curtsies then we're very close. If we want more general Windows support it'd be helpful to assess what is and isn't doable on Windows and add code (to Curtsies? to the repl?) to offer the subset of functionality that makes sense.

I'm also most excited about even loop integration.

No other unique features come to mind.

I just opened bpython-urwid and it seems a bit broken for me (keypresses on first line not showing up until I hit enter, rewind not working), I'll file bugs.

I don't know if using greenlet is blocking anything on the Windows or event loop fronts, either seems plausible.

Once these are dropped some refactoring becomes easier: right now the curtsies Repl is a subclass of the Repl class in curtsiesfrontend/repl.py, which is a subclass of the Repl in the root directory. I find this inheritance hard to reason about.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.