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.
Fast Test
See #2026.
By default `iptest` will only run the faster tests, and `iptest --all` is necessary to run all of them. At present, it just cuts out `IPython.parallel`, but we can refine that if we want to.
`test_pr` is also updated so that you can pass extra arguments through to iptest.
Update code mirror 2.22 to 2.32
Update codemirror to the latest stable.
And upadte our code here and there to smooth the changes.
Just the fact that there is a new tab system that was inserting tabs instead of 4 space, we just have to pass a new line when creating e new CM instance.
Should also fix#1464.
See Readme-IPython to see what patch to apply when updating next.
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.
Create a unique & temporary IPYTHONDIR for each testing group.
Following #2148 (unification of Windows / Unix code in iptest), and
in progress towards #1880 (Add parallelism to iptest & test_pr), this
pull request launches each iptest test group with a unique & temporary
`IPYTHONDIR`.
This has two benefits:
* Insulates the test suite from any craziness in your own configuration.
(Try adding `import sys; sys.exit()` to your config file...).
* Allows multiple test suites to be launched in parallel without the worry of
conflicts.
Work around lack of os.kill in win32.
Fixes iptest brokenness on win32 caused by my having merged #2148 too hastily. Extra credit to @bfroehle and @minrk for working/testing the fix quickly.
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.