We can't be certain when the shared output cell can be safely turned
over to the next org block. I have witnessed `display_data` updates being
received *after* both the `execute_result` and `execute_reply`
messages. As a HACK, we `run-at-time 2` seconds the turning over of
the cell to accommodate any eleventh hour straggler display_data's.
test-compile attempts to egrep "bad" warnings with hardcoded strings.
This is better than nothing, but misses a lot. We are close
to elimiinating this hack in favor of `(setq
byte-compile-error-on-warn t)` to enforce no warnings whatsoever. Until
then, keep adding egrep strings to `test-compile`.
Without `(package-refresh-contents)`, the `make install` won't be able
to download and install dependencies for new users. Remedy this.
Retire files that will never be used.
As emacs users we prefer and have the luxury of fuzzy file navigation
via ido and projectile. From a notebook or notebooklist buffer, the commands
`C-c C-f` ein:file-open
`C-c C-o` ein:notebook-open
offer an ido alternative to point and click navigation.
To populate the ido lists, retrieving the content hierarchy is on by
default. Two custom variables determine how wide and deep the content query
probes (currently at 2 levels deep and 6 directories wide). Set both
to zero to turn off.
tkf half finished code to quickly go from local file buffers to notebook
mode via `C-c C-z` or `C-c C-o`. This is now possible. EIN will
start the server from a suitable parent directory of the visited file.
Enable ido completion for `notebooklist-login`.
Remove the albatross `ein-loaddefs.el` in favor of more standard
`ein-autoloads.el` that is not git tracked.
Convenience `make install` from git source (local alternative to
melpa).
The standard way to avoid this problem is to use autoload instead of require.
This way ESS is not required to compile and run EIN and it is only loaded if the user actually uses it.
Ensure canonical representation defined in `ein:url' is being used for session
identifiers. Not doing this was confusing ob-ein on what kernelspec to use.
```
"http://localhost:8888"
"http://localhost:8888/"
"http://127.0.0.1:8888"
"http://127.0.0.1:8888/"
"8888"
8888
```
Ideally these should converge to the same thing. Since many hash
tables are keyed off `url-or-port`, forgetting to
normalize `url-or-port` with `ein:url` leads to missed cache hits and
general malaise. So we try to do that.
Address a FIXME: apply callbacks to `ein:notebook-list-login-and-open`.
Removed py3.5 from travis build matrix to reduce developer strain.
Use deferred and callbacks instead of `:sync t` for tkf requests which
is known to have issues. Query server attributes once on
notebooklist-open to avoid sequencing issue #176 (but allow Resync).
Under curl backend, a second request for the same "key" as a pending
request will abort the latter, which has resulted in a clobbered
curl-cookie-jar file, so merely warn and don't abort.
Fix#176
Try to gracefully handle multiple calls to `ein:shared-output-eval-string' by
wrapping calls to deferred:$. The deferred chain will not call
`ein:cell-execute' if the cell is already running.
Also did a bit of refactoring in ob-ein.
Inspired by @khinsen's ob-ipython-async, automatically generate filenames for
inline images. That is, make :image an optional argument for ein source blocks
in org.
Trying to increase reliability of starting a juptyer server from Emacs. Deferred
is cool, but a pain to understand for this old brain.
Fix some typos in ein-ob and be smarter selecting completion backend when
connecting a python buffer to a jupyter notebook.
Instead of just enabling auto complete why not just connect to the notebook ala
`ein:connect-to-notebook`?
Update dependencies documented in README.rst
Force version check when starting the jupyter server - ein seems to be easily
confused in this regard.
Will try to use ein completion backend configured by user when editing ein
source blocks in org.
Also slightly more robust inspecting in ein_inspector.py
ob-ein will alert the user if they are generating an image in the ob-ein source
block and no :image header has been supplied. Added some documentation for good
measure, though people will probably still get tripped up by this.
Return the results of execution as a single string instead of a list of strings.
This allows some more flexibility when dealing with :results parameters and
seems to fix a bug with inserting matplotlib images. Hint: try using `:results
value raw`.
Content api tries to handle redirects, pointing new content towards the
redirected url instead of the one supplied by the user. Login with redirects not
working, though.
Other fixes:
- Fixed bug in ein-ac that was generating errors outside of ein buffers.
- New function `ein:pyools-set-figure-size` as shortcut for modifying
matplotlib figsize rcParam.
- ob-ein will output tracebacks when ein source block generates an error.
Using C-c', users can create a temporary buffer running an appropriate
mode to edit the contents of a notebook cell. This functionality is
intentionally very similar to what org-mode provides for editing blocks
of code or other.