Commit graph

154 commits

Author SHA1 Message Date
dickmao
c5bfb0dca1 expose ein:notebooklist-open as a bonafide function (but obsolete) 2018-10-17 17:24:34 -04:00
dickmao
085a188b20 Streamline login
Merge the login and open commands (open aliased to login).  Add login
tests described in #352.

Attempt to improve user experience by synchronously executing
`ein:jupyter-server-start`.  `ein:dev-prefer-deferred` custom variable
allows easy switch to compare sychronous versus old asynchronous behavior.
2018-10-17 16:52:10 -04:00
dickmao
257331f32c Revert "Normalize url-or-port"
This reverts commit 435d001b03.
2018-10-15 14:13:51 -04:00
dickmao
cea40017fa fix bug 2018-10-15 10:29:11 -04:00
dickmao
435d001b03 Normalize url-or-port
```
"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.
2018-10-14 20:36:49 -05:00
dickmao
c888508751 ein-jupyter must require ein-notebooklist but not conversely 2018-10-14 21:24:50 -04:00
dickmao
0c6e37c8e0 Normalize url-or-port
```
"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.
2018-10-13 13:09:53 -04:00
John Miller
af405dddb7 ein-notebooklist: Document ein:populate-hierarchy-on-notebooklist-open. 2018-10-12 20:51:32 -05:00
John Miller
c51134fa65 ein-notebooklist: Make hierarchy query optional.
Via the `ein:populate-hierarchy-on-notebooklist-open' variable, which we need to
document stat.
2018-10-12 15:32:51 -05:00
dickmao
11c2245c41 Asynchronize all server communication
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
2018-10-07 00:40:48 -04:00
dickmao
ad8408dfb7 Implement undo
`M-x customize-group RET ein`
Toggle `Ein:Worksheet Enable Undo`
Save for Future Sessions
Restart emacs or kill/restart notebook

Fixes #338
2018-10-02 10:00:25 -04:00
Sam Steingold
f2396e6ebe simplify code 2018-09-05 09:50:12 -04:00
Sam Steingold
0cc585f7f2 remove a spurious "}" in help 2018-09-05 09:50:12 -04:00
Sam Steingold
bdcfa149ab untabify and fix indentation 2018-09-05 09:50:12 -04:00
John Miller
c648424389 Fix #297.
Raise an error if the user does not specify the port or the full URL when
calling functions like `ein:notebooklist-open' and `ein:notebooklist-login'.

It can be debated that ein should assume http over https if the user doesn't
specify, but I currently think it shouldn't. Debate me.
2018-08-29 17:32:09 -05:00
John Miller
895777f5ea Try again to fix eager macro expansion error on travis. 2018-05-31 13:15:04 -05:00
John Miller
59d2b83a21 Maybe fix eager macro expansion error on travis. 2018-05-31 07:56:38 -05:00
Sam Steingold
58a199e1c6 code cleanup: remove ein:min and ein:do-nothing (ELisp has min and ignore) 2018-05-27 12:04:13 -04:00
Sam Steingold
264f355081 make timestamp format customizable and default to ISO 8601
add ein:format-time-string and use it for both ein:timestamp-format
and ein:notebooklist-date-format
2018-05-25 11:43:39 -04:00
John Miller
6e9fa64bb0 Fix #260.
See new interactive function `ein:notebooklist-refresh-kernelspecs'. Maybe I
will document it by the next commit.
2018-05-20 08:42:42 -05:00
Sam Steingold
b0bc1b2293 make default notebooklist sorting customizable
(ein:notebooklist-sort-field): New custom var, replaces `ein:%item-sort-param%'.
(ein:notebooklist-sort-order): New custom var, replaces `ein:%item-sort-order%'.
(ein:make-sorting-widget): New macro.
(ein:nblist--sort-group): Fix the meaning of :ascending & :descending.
(render-directory): Use `ein:make-sorting-widget' to define widgets;
use the new custom vars instead of the internal %% vars.
2018-05-04 15:07:32 -04:00
Sam Steingold
5bf4afb33b Make date format in notebooklist mode customizable.
(ein:notebooklist-date-format): New user variable.
(ein:format-nbitem-data): Use it.
2018-04-23 17:33:13 -04:00
John Miller
be5792da8d ein-notebooklist: More featureful sorting of directory listing.
Not much of a UI at the moment, but notebooklist entries can now be sorted
either by name or by date last modified. Jupyter does not provide size
of each item, that I can see (for the moment), so currently not possible to sort
by that parameter.
2018-04-22 20:57:01 -05:00
John Miller
d1c3464583 Formatting cleanup, sort notebooklist entries by name.
Taking some initial steps to implement features requested in #293 by @sam-s.
2018-04-22 10:22:11 -05:00
Patrick
ccd43f857b This version works 2018-03-31 14:38:25 -07:00
Patrick
6eb1c100a3 Revert "Starting to split render functions for ipy2"
This reverts commit bd3f41d683.
2018-03-31 13:58:01 -07:00
Patrick
42ff34d82a This assumes ipy-version is globally accessible 2018-03-31 13:06:26 -07:00
Patrick
2099e7cd1c Not sure where ipyversion is accessable 2018-03-31 13:03:40 -07:00
Patrick
b775732e4e Add notes so I can combine the two render-directory funcs 2018-03-31 12:58:32 -07:00
Patrick
bd3f41d683 Starting to split render functions for ipy2
There's still a lot of repeated code that could be shared b/w the ipy2
and ipy3 functions.  Need to make sure I understand it first.
2018-03-27 22:34:19 -07:00
Patrick
3466d0f87d Cleanup - undo unrelated changes
I had made a few other changes to satisfy my linter.  This removes
those changes so it's more clear what I was editing to change the
rendering order.
2018-03-25 13:42:35 -07:00
Patrick
e2734c9749 You can now customize order with ein:notebook-list-render-order 2018-03-25 13:30:50 -07:00
Patrick
adc85796e4 Works, puts open notebooks above directory 2018-03-25 12:32:31 -07:00
John Miller
a8fc712ca8 ob-ein: Wrap if-let* var list properly.
Make async work a little better, but can still have problems if one tries to
execute several source blocks at once.
2018-03-10 07:07:37 -06:00
John Miller
baec3d8577 ein-notebooklist: Fix #278. 2018-03-08 14:08:45 -06:00
John M. Miller
2f722a31a2 ein-notebooklist: Fix for #260.
Force a query of available kernelspecs when calling `ein:notebooklist-open'.
Idea is to catch when user installs a new kernelspecs while ein is active.
2018-01-10 09:36:27 -06:00
John Miller
f63451ca03 ein-notebooklist: Improved ein:notebook-update-url-or-port.
As well as going to a non-deferred implementation for
`ein:notebooklist-change-url-port' the code now properly restarts the nb kernel
when changing the server the notebook is running on.

Also a small change to the formatting of the notebooklist buffer.
2017-11-07 15:14:45 -06:00
Benda Xu
6a9df3680c lisp/ein-notebooklist.el: add missing '.'. 2017-10-21 22:28:17 +09:00
Benda Xu
adce9b3b24 execute and debug notebooklist-open early. 2017-10-21 22:28:17 +09:00
Benda Xu
c759c9a280 lisp/ein-notebooklist.el: print password explicit in debugging mode. 2017-10-21 22:21:05 +09:00
John Miller
c0eabfe2ad ein-notebooklist: Fix possible bug specifying notebook urls
Don't think we were handling https:// url's correctly.

Also some code cleanup in ein-connect; fix longstanding bug in ein:load-files,
and tweak default timeout for starting a jupyter session from within emacs.
2017-10-03 10:04:41 -05:00
Benda Xu
745673926a lisp/ein-notebooklist.el: defer notebooklist instead of buffer.
The buffer could be killed after the callback.
2017-09-30 21:34:00 +09:00
Benda Xu
077de69d94 lisp/ein-notebooklist.el: dash is needed to provide -group-by. 2017-09-30 14:35:36 +09:00
John Miller
15ad1c49c7 ein-notebooklist: Order notebook list by file type.
Order entries in notebooklist by file type (i.e. file extension). Add function
'ein:jupyter-server-stop to 'kill-emacs-hook.

Fixed link in documentation.
2017-09-12 16:22:19 -05:00
John Miller
aebdbc1eb8 ein-cell: Fix saving images in worksheets.
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.
2017-06-30 21:41:16 -05:00
John Miller
c1d263fa13 ein:notebooklist: A faster, better change url.
Make the process of changing URL's via `ein:notebooklist-change-url-port'
smoother and more user-friendly.
2017-06-03 15:45:28 -05:00
John Miller
22cc948975 ein:notebooklist-change-url-port: Better deferred syntax, use lexical bindings. 2017-05-30 14:33:31 -05:00
John Miller
e3eca1115d ein-notebooklist: Avoid auth issues when changing host url.
When calling `ein:notebooklist-change-url-port' first make call to
notebooklist-open to ensure cookies are properly created/refreshed before trying
to save notebook and restart kernels.

Note this uses a bit of magic from deferred, which was already being used in
ein-jedi.el, but somehow never made it into the list of required pacakges. We
are now correcting that oversite.

Extend the timeout when querying the ipython/jupyter version. Also try to detect
when timeouts occur and in such cases temporarily assume a version (4 for the
moment).
2017-05-30 14:05:02 -05:00
John Miller
4a487ab9b8 ein-notebooklist: New function ein:notebooklist-change-url-port
Like `ein:notebook-update-url-or-port', but for all the notebooks opened from the
current notebooklist buffer.

Fix bug in `ein:notebook-update-url-or-port' that was keeping the kernel from
restarting.
2017-05-24 09:53:58 -05:00
John Miller
88595dede6 Support filetypes other than ipynb
EIN now lists other file types in notebooklist buffer and will allow user to
open those files for editing. The new buffer will get the right major-mode most
of the time, but has a hard time getting the line coding right on Windows
platform.
2017-04-20 07:47:05 -05:00