New `%%capture` cell magic captures stdout/err while running a cell.
Uses `capture_output()` context manager, moved to utils.io from IPython.parallel testing utilities, where it originated.
The caputre objects can be printed as a string, case in which they display the captured stdout, which is also available as `.stdout`. The captured stderr, if any, is in a `.stderr` attribute. A `.show()` method can be called to quickly print both, with stderr being correctly printed to the sys.stderr stream (so the notebook displays it with red highlighting).
closes#1863
Fix 1px margin bouncing of selected menu item.
This fixes the margin of the active menu item to zero, so now the text doesn't shift around, even if you use larger fonts.
To reproduce the original error, zoom your notebook (ctrl-mousewheel, or ctrl-+ in most browsers) and try the menu.
Fix vertical offset due to bold/italics, and bad browser fonts.
Adds a dialog warning users when a problematic monospaced font is detected, so they can change their configuration.
There was a bug in NotebookManager.save_notebook_object.
Here is how to reproduce:
0. Make sure you don't have Untitled0.
1. Open new notebook Untitled0.
2. Rename it to something else.
3. Copy Untitled0.ipynb to the notebook dir from somewhere.
(Do not use notebook UI.)
4. New copied Untitled0 cannot be opened.
The renamed notebook is opened when tried.
Indeed, accessing to http://localhost:XXXX/notebooks shows
duplicated notebook_id.
The problem was that NotebookManager.rev_mapping keeps old notebook
name after renaming.
Make : invalid in filenames in the Notebook JS code.
This only prevents : in the filenames on the JavaScript side of things. Handling this on the server side will be a separate issue that is related to other open issue. I will update those to reflect this.
closes#1781
Rmagic extension to use R (the statistical package) seamlessly from IPython.
The rmagic extension allows R inline code as well as cell level magics. An example notebook is provided in docs/examples/notebooks/rmagic_extension.ipynb to demonstrate its usage.
Main points:
1) Allows capture of plots to R via inline png plots (like --pylab inline)
2) Allows capture of R's stdout() connection to the notebook
3) Allows simple push/pull for array data to/from R (via rpy2) with copy only on push to R -- this seems necessary.
add InlineBackend to ConsoleApp class list, so it will be included in generated config files / help-all output of the appropriate entry points.
This will alleviate some of the annoyance discussed on the list, because the config file will have the whole default rc commented out, so the starting point for user-edits is no change, rather than a blank slate.
New Tooltip, New Completer and JS Refactor.
This is a major reworking of lots of notebook client code, both introducing new features and allowing certain things to be done more cleanly:
- New graphical tooltip with keyboard control: successive presses of the TAB key will expand it, pin it for 10 s (a clock icon is shown), and send its content to the bottom help pager (which is now resizable).
- Completer has been refactored into a new class and now can analyze the current cell to support completions on objects that don't exist in the kernel yet (because the cell hasn't been executed).
- All the client-side JavaScript has been decoupled to ease reuse of parts of the machinery without having to build a full-blown notebook. This will make it much easier to communicate with an IPython kernel from existing web pages and to integrate single cells into other sites, without loading the full notebook document-like UI.
- This refactoring also enables the possibility of writing dynamic javascript widgets that are returned from Python code and that present an interactive view to the user, with callbacks in Javascript executing calls to the Kernel. This will enable many interactive elements to be added by users in notebooks.
An example of this capability has been provided as a proof of concept in `docs/examples/widgets` that lets you directly communicate with one or more parallel engines, acting as a mini-console for parallel debugging and introspection.
Closes#1498.