Nathaniel Nicandro
f7f8bfa52c
jupyter-api-url-request: Don't override a user customizable variable
2019-07-30 10:24:31 -05:00
Nathaniel Nicandro
bcc438bc1f
Add FUNDING.yml
2019-07-29 18:18:32 -05:00
Nathaniel Nicandro
98adac6d31
Fix definitions of jupyter-tramp-file-name(-method)?-p
...
Fixes #155 .
* jupyter-tramp.el (jupyter-tramp-file-name-method-p):
(jupyter-tramp-file-name-p): Adhere to documentation.
* test/jupyter-tramp-test.el (jupyter-tramp-file-name-p): Add test.
2019-07-27 12:22:47 -05:00
Nathaniel Nicandro
a0b33a5861
jupyter-org--fixed-width-to-example-block: Preserve blank lines
2019-07-27 00:06:18 -05:00
Nathaniel Nicandro
c91861cef9
jupyter-org--delete-element
-> jupyter-org-delete-element
...
* jupyter-org-client.el (jupyter-org--delete-element):
Do it and also adhere to documentation. Update all callers.
2019-07-27 00:04:34 -05:00
Nathaniel Nicandro
93f21b077b
jupyter-org--do-insert-result: Handle control codes in stream output
...
* jupyter-org-client.el (jupyter-handle-stream): Remove control code handling.
(jupyter-org--handle-control-codes): New function.
(jupyter-org--do-insert-result): Do it.
2019-07-26 23:16:05 -05:00
Nathaniel Nicandro
dd4b4e3a82
jupyter-server-mode-set-client: Increase timeout in test
...
There are often failures on Appveyor.
2019-07-25 10:23:23 -05:00
Nathaniel Nicandro
11b293438d
jupyter-generate-request (jupyter-org-client): Consider babel-call
org elements
...
Fixes #154 .
2019-07-25 03:48:18 -05:00
Nathaniel Nicandro
66c794964c
org-babel-jupyter-src-block-session: Consider babel-call
org elements
2019-07-25 03:48:18 -05:00
Nathaniel Nicandro
d11aa3f10d
Fix byte compile warning
2019-07-24 17:28:25 -05:00
Nathaniel Nicandro
a54aa03010
Update CHANGELOG
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
a7da89eae4
README.org: Mention naming notebook server kernels
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
4b55a29726
org-babel-jupyter--server-repl: Associate session name with kernel ID
...
So that `M-x jupyter-server-list-kernels` will show which kernel corresponds to
an Org mode source block session.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
6f97c958da
Add jupyter-server-kernel-names
variable and associated functions
...
Used to associate names to kernel IDs.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
ea22bd512d
Re-authenticate after "Access Forbidden"
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
e8540667c7
jupyter-api-login: Mark response buffer as dead
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
c711562207
jupyter-gc-servers: Only stop server comm if it is alive
...
Bug found by @dcherian, see
https://github.com/dzop/emacs-jupyter/issues/131#issuecomment-510920312
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
81797ccbb5
Mention server kernel list keybindings in README
...
Co-Authored-By: Deepak Cherian <dcherian@users.noreply.github.com>
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
388f593955
jupyter-kernel-alive-p (jupyter-server-kernel): Handle non-existent server
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
6d7b07333f
Add jupyter-api-server-exists-p
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
36b9edc31e
jupyter-server-find-manager: Don't check if the kernel is alive
...
Delay any errors, e.g. if the server is no longer alive, to where they would be
more useful.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
5efa64ff19
jupyter-server-list-kernels: Better documentation
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
3aa889b25c
org-babel-jupyter--server-repl: Make language aliases if necessary
...
* ob-jupyter.el (org-babel-jupyter--server-repl): Do it.
(org-babel-jupyter-make-language-alias): Set `org-babel-tangle-lang-exts` and
`org-src-lang-modes` also.
(org-babel-jupyter-aliases-from-kernelspecs): Accept an optional `specs`
argument. Move setting of `org-babel-tangle-lang-exts` and `org-src-lang-modes`
to `org-babel-jupyter-make-language-alias`.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
816a30f5a7
jupyter-api-copy-cookies-for-websocket: Ensure cookies have expiration date
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
36aec72814
jupyter-api-copy-cookies-for-websocket: Ensure modified cookies will be written to file
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
239715919f
Move server slot of jupyter-server-kernel-manager
to the kernel object
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
9fe99744fd
jupyter-api-construct-endpoint: No need to encode components of endpoint
...
This is already handled by `url-encode-url` when creating the HTTP request.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
fa3f7c8b31
Handle encoding when making REST API requests
...
* jupyter-rest-api.el: Ensure strings are encoded before making HTTP request.
(jupyter-api-http-request): Encode JSON as utf-8.
(jupyter-api-xsrf-header-from-cookies): Ensure header isn't multibyte.
(jupyter-api-authenticate): For the token method, ensure token isn't multibyte.
(jupyter-api-copy-file): Encode string before encoding to base64 for binary content.
(jupyter-api-read-file-content): Decode content as utf-8 when necessary.
* jupyter-tramp.el
(jupyter-tramp-write-region): Ensure only `utf-8` or `binary` coding systems
are used since Jupyter only supports those.
* test/jupyter-tramp-test.el: Update for above changes.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
dd4332a7cc
jupyter-rest-client: Raise an error when GnuTLS unavailable for HTTPS connections
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
933e5c65a6
Cache file model contents in a buffer
...
* jupyter-rest-api.el (jupyter-api-content-buffer): New function.
(jupyter-api-insert-model-content): Use it.
* jupyter-tramp.el (jupyter-tramp-file-local-copy): Use it.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
d018434b4a
jupyter-tramp-get-file-model: Break up into more functions
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
59c2e88ae6
jupyter-api-content-path: Drop local drive letter on Windows
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
8d45a0242d
Refactor notebook server related tests
...
* Start notebook on-demand during tests
* Do cleanup of sockets/processes when killing Emacs
* This should work around intermittent core dumps on Travis due to epoll
reconnect attempts.
* Simplify tests by creating and using setup/teardown macros
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
0e34e73cae
jupyter-api-request: Don't reset auth state on an unauthorized request
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
248dc34117
Define jupyter-api-request-(headers|method|data)
...
So as to make it easier to transition away from `url-retrieve` if necessary in
the future.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
e35981d147
jupyter-rest-api.el: Refactor login and authentication
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
a4aaa7d1db
jupyter-api-request: Refactor
...
* jupyter-rest-api.el (jupyter-api-url): Remove.
(jupyter-api--request): Remove. Work moved into `jupyter-api-request`.
(jupyter-api--url-request): Rename to `jupyter-api-url-request`.
Update all callers.
(jupyter-api-add-websocket-headers)
(jupyter-api-construct-endpoint): New functions.
(jupyter-api-request): Use them.
Don't assume "api" prefixes endpoint, update all callers.
(jupyter-api-get-file-model)
(jupyter-api-get-kernel-ws):
Update to account for how query parameters are
passed in `jupyter-api-request`.
* jupyter-server-test: Update tests for changes to `jupyter-api-request`.
(jupyter-api-add-websocket-headers)
(jupyter-api-construct-endpoint): New tests.
squash! jupyter-api-request: Refactor
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
e53973095c
jupyter-api-parse-response: Handle url-max-redirects
error
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
f4c03e71d1
Add jupyter-format-time-low-res
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
bf6e9014f3
Use filename component of url when retrieving cookies
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
0240edf7bb
jupyter-server-ioloop: Wait while receiving websocket messages
...
Previously the waiting was done in `zmq-poller-wait-all` which wouldn't allow
websocket messages to get handled.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
7d3de9e6b2
Implement jupyter-comm-(start|stop)
methods for a jupyter-server-kernel-manager
...
These are wrappers around calls to the same method for the `comm` slot of a
`jupyter-server-kernel-manager`.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
bed724f2fe
jupyter-server: Symmetrize (dis)connect channel events
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
46e4e6c40e
jupyter-start-kernel (jupyter-server-kernel-manager): Also start the comm
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
900016d398
Include session ID when connecting websockets
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
df7071eac9
Add jupyter-gc-servers
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
b955f6a40b
Add README section on notebook server support
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
1658cd0454
jupyter-kill-kernel (jupyter-server-kernel): Do nothing
...
There is no need to forcibly kill a kernel since the notebook handles this
already.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
5bd164c224
Error when trying to read a notebook through a server
...
We can't do much with a JSON representation of a notebook right now.
2019-07-24 16:59:04 -05:00
Nathaniel Nicandro
9241296b45
jupyter-api-request: Ask for authorization on next request after an un-authorized one
...
What is a better solution?
2019-07-24 16:59:04 -05:00