Add IPKernelApp.capture_fd_output config to disable FD-level capture #752
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds a process-level flag to opt out of this behavior, if folks want to restore the previous behavior.
It might be nice to expose an API to turn this off/on on a context basis, wether it's on by default or not. That would give folks a better way to manage output capture based on library behavior.
closes #737
wurlitzer is a tool that implements the same functionality as a context manager, if that's helpful. There are lots of edge cases involving flushes, etc. I dealt with over there. It also defines an IPython extension.
Be aware that doing this can cause hangs if GIL-holding code tries to write more than pipe-max-size bytes (usually 64k by default). Running this code will hang most IPython kernels in a non-interruptible state after #630:
see more info minrk/wurlitzer#48