Some environment can be slow so that even if "The Jupyter Notebook is
running" appears, the notebook URL with token is not available.
Test exactly for the URL.
It seems there are enough people out there still on Emacs 24 to warrant undoing
some of my recent moves away from eieio to cl-generic. For the near future I
will try to keep any changes that are incompatible with Emacs 24 to a
development branch. There is still probably plenty of opportunity to make the
code more future-proof for an eventual move away from eieio (I'm looking at you
oref and sref...)
Images weren't being save to json in the way they should have. Mostly had to do
with how the attirbutes were being ordered. This is still, unfortunately, a
nasty bit code but it still seems to work.
This reduces some of the complexity in testein.py, but unfortunately running
tests is still unreliable. Running batchwise tests don't work at all in Windows,
and running from inside emacs tests often need to be run multiple times before
they pass.
The worst offender is the delete notebook test, which will pass on usually only
1 out of 3 tries.
Testing seems to have revealed a couple bugs, so win??
EIN can communicate with the jupyter contents API synchronously or
asyncronously, with the default behavior the latter. For a time it has
been possible to force synchronous from the code, but now I have made
that a user-configurable parameter (see `ein:force-sync`).
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.
Conflicts:
tests/test-ein-shared-output.el
Add worksheet module to start worksheet support. There is no
multiple worksheet support yet. I am merging this since this
branch is as usable as the master branch.
Also, there are several bug fixes and improvements unrelated to
worksheet feature.
At the time (ein:$notebook-pager ein:%notebook%) is executed, the
current buffer is changed to the pager buffer. As `notebook' is
already let-bound to ein:$notebook instance, it is better to use
this than the buffer local ein:%notebook%.