Autochange highlight with cell magics
Highlight change is made on cell load and Enter keypress.
For now, it recognizes %%javascript, %%python[3], %%ruby, %%bash , %%R, %%perl.
new modes can easily be added by adding regular expression on config.js
Previously `^C` would register as a regular test failure, and the test suite would continue, in which case halting `iptest` meant hitting `^C` nine times.
This change makes iptest take notice of sigint in a test runner, and aborts the run.
Notebook: Store the username in a cookie whose name is unique.
Cookies cannot be saved on a per-port basis, so a cookie "username" is shared
across all running IPython notebooks with the same hostname. Using a unique
cookie name prevents this collision.
This allows a user to start multiple IPython notebooks and be logged into
each.
was using notebook.get('name') instead of notebook.metadata.get('name'),
where the name is actually stored. The result was that all downloaded notebooks were called 'notebook'.
closes#2227
Cookies cannot be saved on a per-port basis, so a cookie "username" is
shared across all running IPython notebooks with the same hostname.
Using a unique cookie name prevents this collision.
This allows a user to start multiple IPython notebooks and be logged into
each.
Introduce Notification Area
This allow several notification widget to be next one to the other in the notification area.
The Api allow also to register a callback if the user click on the notification. and allows sticky and non sticky notification.
I have created a base class for all notebook managers. Our
existing, file-based store, is now in filenbmanager.py. I have
also created a new Azure Blob based backed notebook manager.
The behavior is the following:
* If you press UP while on the first row, you go to the beginning of the line.
* If you press UP again (or were already at the beginning of the line), you
go to the previous cell.
* If you press DOWN while on the last row, you go to the end of the line.
* If you press DOWN again (or were already at the end of the line), you go
to the next cell.
This applies to `CodeCell`s and `RawCell`s.
add FileFindHandler for Notebook static files
* The static file handler now uses a search path, instead of a single dir.
This allows easier customization of available js/css,
and provides a place for extra files to go for extending the notebook.
* An empty custom.js / custom.css are added to the templates for trivial
custom user styling/scripting.
The search only happens once, and the result is cached after the first.
* A few methods are pulled from tornado 2.2-dev verbatim to have tornado 2.1 compatibility.
* mathjax is now installed by default in profile.
win32 iptest: Use subprocess.Popen() instead of os.system().
The call to `os.system` in `iptest` prevents us from easily setting `$IPYTHONDIR` to a temporary directory. In theory we should be able to use `subprocess.Popen` instead of `os.system` in Windows. This would unify the code structure and make it easy to pass in a different environment.
Note that Python < 2.7 does not have `os.kill`. I've attempted to work around this by using `ctypes` to kill any living processes.
python 2 and 3 compatibility without 2to3
apply some fixes :
- apply (deactivated in setup.py now)
- repr (deactivated in setup.py now)
- print (only in modules with print >>)
- raise (partially)
don't touch deathrow and quarantine.
Base of allowing a full toolbar construction in js without altering the
html template, and use it to construct our toolbar as example.
still need some work to be totally decoupled.
There's nothing there we should be running python tests on, and
occasionally python files may appear there that cause problems to nose
(e.g. mathjax ships a non-py3 valid conf.py that breaks py3 testing).
brutally replace all `exeption <type>, <name>:` by
`exception <type> as <name> :`
`exception <type>, <type> :` should not be present anywhere in the code
anymore, or should be present with explicit tuple as
`exception (<type>, <type>)`
this improve the current css of the print page and add css to the
classical notebook with print as target to get a better print view ant
the ability to directly print a notebook without going through the print
view
Fix spurious appearance of the #fontarea when fonts don't have any problem; also remove loud dialog when problematic font is detected and simply adjust baseline. Users will have a slightly offset baseline for bold/italic highlights, but without any functional problems.
Fixes#2005.
Clean BG processes created by %%script on kernel exit
* uses less forceful shutdown of kernels in the notebook, allowing atexit machinery to fire
* enables daemon BackgroundJobs
* cleanup %%script --bg subprocesses at shutdown
minor notebook startup/notebook-dir adjustments
* change inaccurate / distressing "Overwriting profile..." log message
* `ipython notebook path` results in setting notebook-dir if it's a dir,
rather than unconditionally setting file-to-run
* file-to-run overrides no-browser
* kernels start in the notebook dir, rather than the Server's cwd
* notebook dir is validated, and created if it doesn't exist (only if parent exists, like ~all other such things)
closes#1985closes#1980
second attempt at scrolled long output
Some amount of CSS tweaking will probably want to be done before 0.13 final,
but this is good enough for beta.
closes#1553
Cell/Worksheet metadata
* metadata dicts are attached to cells and worksheets
* restores collapsed flag to the nbformat - this change happened in the refactor, and was undocumented, and possibly accidental. But we should either document it or fix it, and this includes a fix.
* adds a new field, `nbformat_minor`, used to denote minor bumps of the notebook format that expose new capabilities but don't prevent loading by older clients.
* Add a warning in Javascript if loading a multiworksheet notebook (which will exist in the future) as current JS code will only save the first.
closes#1915
fix for #1678, undo no longer clears cells
With these changes, Ctrl-Z inside of codemirror cells will only undo up to the text that was in the cell when it was loaded from JSON.
closes#1678
I found another bug where switching the cell type causes the loss of all
undo history for that cell. With this commit, switching the cell type
simply resets the history
Remove remaining references to deprecated XREP/XREQ names.
There was only one actual use of the deprecated constants in code, but numerous mentions in docstrings, etc.
These names have been removed from the next libzmq release, and will presumably be removed from pyzmq someday.
only one line of actual code is changed.
these names have been removed from the next libzmq release,
and will presumably be removed from pyzmq someday.
Increase duration of save messages and write permanent 'failed' message to the save status area on failed save.
Not a pop-up as described in #1461, but significantly more prominent, and most importantly permanent when saving fails, at least until the next successful save.
Closes#1461.
Add %%octave, %octave, %octave_pull and %octave_push magics to facilitate interaction with Octave via oct2py. This is similar in spirit to the R magic extension.
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.