When creating a new notebook pass some additional json so IPython
knows we want to create a notebook, and not a file or directory (this
was causing problems with IPython-dev).
The message format for execute_reply payloads has changed. Seems the API
for this is still not finalized, but at least the pager works when I do
things like `object_name?`.
With IPython 3.0 we now support multiplexed communication over a single
websocket. At the moment iopub and shell are supported; stdin doesn't
seem to be working yet (not sure if it needs to be, though).
Call `(ein:notebooklist-reload)` to automatically refresh the
notebooklist buffer when a notebook is opened or stopped so those
helpful [Stop] widgets appear and disappear as needed.
ein was incorrectly writing empty metadata as a Null object, which was
causing errors in ipython.
Added a helper function to write json encoding of a notebook to a
temporary buffer to help debug code for encoding nbformat4 json from
cell data.
The notebooklist buffer will give option of "stopping" running kernels,
similar to feature in the browser UI. In EIN stopping a kernel also
means kill the buffer the kernel is connected to.
Calling ein:query-ipython-version with IPython 2.x running will result
in a request error since the api REST url is not implemented. Getting a
404 response is inevitable unless the IPython devs backport the api URL,
but I can make ein complain less when this happens.
Updating documentation to list current requirements for ein. (require
'ein-loaddefs) is redundant when loading from MELPA.
For manual installation users can uncomment this line.
Renaming to ein2 in preparation for submitting to melpa. Note this
changes how you load ein! Call (require 'ein2) now instead of (require
'ein).
Note also that you can't load both ein and ein2 at the same time, so you
should delete ein from your packages before trying ein2.
IPython 2.x+ has a JSON response when creating a new notebook. We detect
this and correctly parse the info so we can open a buffer with the newly
created notebook.
Also more updating of test code.
More conditional code for saving notebooks in nbformat v4.0.
`prompt_number` is no longer a valid property so it has to be corrected
to be `execution_count` instead.
Not sure if we need to do this, or what purpose it might serve, but
seems more appropriate than sending a kernel_info_request when opening
websocket channels.
Also make message handler kernel inactive error messages more
informative.
There is a nasty mismatch between internal representation of cell
outputs in ein and for cell outputs in notebook v4.
The current solution is less than elegant, but seems to work. Need more
testing!
Renaming notebooks should work a bit better now, tweaked code for saving
nbformat v4 to correctly include execution_count parameter even if cell
has not been executed.
Cleaned up some silliness in ein:query-singleton-ajax.
BEWARE! This is a large commit and the code here is still mostly
untested. Back up your notebooks before giving this changeset a try with
the current IPython-dev version.
Given that, ein is now able to open and save basic notebooks saved in
nbformat 4. Still haven't tested more complex notebooks with embedded
images.
Progressing back towards having automated testing via travis. Updated
contact info for ein:dev-bug-report-template and updated requirements in
README.rst.
Maybe, just maybe ein now works under both IPython 2.x and IPython 3.0
(or what is the development version as of this commit). And by works I
mean open, closing, saving notebooks and communicating with the IPython
kernel. It is good.
Also fixed a bug in kernelinfo - os.uname is not implemented in Windows
(or mac, probably), but I think socket.gethostname() is available on all
three platforms.
Fixed bug in accessing directories a depths greater than 1 level.
Some initial support for IPython 3.0 and IPEP 27. Can open notebooklists
and notebooks, but having some issues connecting to websocket.
Renaming notebooks is functional, apparently, but code needs more
testing. I am concerned that the PATCH request is not generating a 200
response code as it should be (and does when I test under Python).
Also some preliminary code to provide breadcrumbs in notebooklist
buffer.
Corrected error in response code checking when saving a network (IPython
server now returns 200 instead of 204).
Cleaned up error that was being raised from EIN's notification system.
Seems like there is some logic for popping to a buffer once a
notification event first, but to what buffer is unclear so for know I
have disabled that functionality.
Fixed a bug in saving notebooks in a subdirectory - EIN thought the save
was failing and incorrectly creating a new workbook at the top of the
directory hierarchy.