Update codemirror to 2.15 and make the code internally more version-agnostic.
Added our own README file with information about what changes we carry to upstream CodeMirror and what version we currently use.
This is separate from previous, because it is more likely to be rejected.
It requires the the Session objects in Handlers get a reference all the way back up to the IPython App that started the environment.
stdin requests are now directed to the frontend that made the execution
request that called raw_input.
allow_stdin flag added to execution_request to indicate whether stdin_requests are allowed.
StdInNotImplementedError exception class added to IPython.core.error, and is raised if raw_input is called from execute requests where allow_input is undefined.
closes gh-673
Simply call it 'codemirror', so we don't have explicit version numbers
inside a bunch of files.
A file called ipython-version-N.NN will be kept to easily let us know
which version we're shipping with IPython.
Several improvements to stdout/stderr handling and visual layout of cells.
Now stdout and stderr are kept contiguous (in a single div) if they are being written to continuously, and stderr is shown with a light red background to help distinguish from stdout.
Further, input cells now have a light gray background to help distinguish them from plain stdout areas.
* add think border around input area
* change background instead of foreground on stderr
* only stderr/stdout are output_stream, general text (including streams) is output_text
* reduce vertical padding on stream output, per @fperez
Consecutive messages to stdout or stderr will not be split
into separate divs, until a new message to different stream
arrives.
Appending will only occur when the latest output is the same
as the new one. Interleaving messages will still result in
multiple divs.
These messages are not returned to the browser, but are printed
to the server logs and will help the code readability.
I have also used a more specific code in some cases.
We were having problems with notebook renaming when using uuid5,
as there are many places in the code where we assume that the
notebook id is unique and unchanging as long as the notebook
server runs.