Skip to content

[experiment] Async shell (run everything under asyncio)#11347

Closed
Carreau wants to merge 4 commits intoipython:mainfrom
Carreau:async-shell
Closed

[experiment] Async shell (run everything under asyncio)#11347
Carreau wants to merge 4 commits intoipython:mainfrom
Carreau:async-shell

Conversation

@Carreau
Copy link
Copy Markdown
Member

@Carreau Carreau commented Sep 30, 2018

prompted by #11336, in which I realized that patch_stdout was mostly meant for async based application.

This run the all IPython shell into an eventloop, which has the side-effect of making async bg task work.

@jonathanslenders
Copy link
Copy Markdown
Contributor

Keep in mind that this could break the input hooks for UI toolkits which IPython has right now. (Did you test that?)

If so, I think a solution would be to use the asyncio even loop with a custom "selector". The selector is the blocking call that waits for any kind of IO. Within the selector you can run another event loop, and glue them together.

In any case, I think I like the direction where this is going!

@Carreau
Copy link
Copy Markdown
Member Author

Carreau commented Oct 13, 2018

Keep in mind that this could break the input hooks for UI toolkits which IPython has right now. (Did you test that?)

No I did not test, and this likely also bypass the pre and post execute hooks.

This was mostly an experiment to see how much change was needed, and think about what internal API to deprecate. As we just released 7.0 I doubt I want to merge this in the 7.x branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants