Fixing test suite for changes in IPython introduced in 3.x and Jupyter. Still a long ways to go, but some improvements in how we generate test notebooks.
Remove Islands Tests.ipynb, we didn't need it. Remove temporary
notebooks after running tests - note that this is difficult to test
under Windows, so I am guessing that this is the right thing to do.
Get ein:junk-new working again under IPython 2.x.
Some non-related work on fixing `ein:pytools-export-buffer`. Not quite
there yet, but I have an idea of what is going on.
Protocol for error reporting has changed in IPython 3.0 messaging and
ein was missing error messages.
EIN was also saving "*" for the notebook execution count and per
nbformat v4 execute_count can only be null or a number.
Work in progress.
Lots and lots of changes trying to clean up code so there are not so
many checks of IPython version. Also a significant amount of refactoring
all notebook server requests code to ein-contents-api.
Also moving away from notebook-id concept; instead use notebook path to
uniquely identify notebooks/content.
Made `ein:query-ipython-version` more efficient by caching results.
Start of a refactor of code for accessing Jupyter's new contents API.
First up an implementation of list contents.
New function for flattening lists borrowed from cl-alexandria (how did
we survive withoutthis in the before times?)
Updating author list here and there.
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.
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.
ein:notebooklist-reload, which is called from success
callback of ein:notebooklist-delete-notebook, needs to
access ein:%notebooklist%. However it was set to nil
in ein:testing-delete-notebook-by-name just after the
delete button is "clicked". This was meant to detect
if the delete process is finished, but was not working.
To solve this problem, I add ein:notebooklist-after-open-hook
and use it to detect end of the delete process.