Commit graph

535 commits

Author SHA1 Message Date
Nathaniel Nicandro
b68404970f Add jupyter-repl-language-mode 2018-02-09 17:21:10 -06:00
Nathaniel Nicandro
d73fd28d4d Handle edge case when point-min is the beginning of a cell 2018-02-09 17:18:29 -06:00
Nathaniel Nicandro
255247788c Remove uses of seq functions
Since this is an emacs 25 dependency and there were not many uses of these
functions, remove them.
2018-02-09 09:11:57 -06:00
Nathaniel Nicandro
5f72b85db3 Refactor jupyter-repl-code-context-at-point for readability
Also remove unused code
2018-02-09 03:16:50 -06:00
Nathaniel Nicandro
58f1135262 Add a way to transform kernel results based on kernel language
For example for python kernels, we would like to convert results to tables if
they look like a table.
2018-02-08 14:15:27 -06:00
Nathaniel Nicandro
a2decc7baf Selectively inhibit REPL handlers when executing a Jupyter src-block
This allows the REPL client to preserve the execution state of the kernel
while `org-babel-execute:jupyter` takes care of all of the output generated by
the kernel without having to preserve the state of the REPL.
2018-02-08 13:44:40 -06:00
Nathaniel Nicandro
b5f958ac99 More granular way of inhibiting handlers
`jupyter-inhibit-handlers` can now be a list of message types. If a message is
received and has one of these message types, then the client handler
corresponding to that message type is prevented from running.
2018-02-08 13:39:55 -06:00
Nathaniel Nicandro
4121cee1ba Use jupyter-repl-cell-code-beginning-position when getting position in cell code 2018-02-08 12:49:17 -06:00
Nathaniel Nicandro
d1e008e6d1 Fix edge case in history navigation
When the cell code initially does not contain a history element and you would
like to navigate backward in history, the previous behavior did not take into
account the N argument of `jupyter-repl-history-previous` in this case.

The new behavior does.
2018-02-08 12:29:08 -06:00
Nathaniel Nicandro
ff51ee8740 Remove the busy status of a cell when an idle message is received 2018-02-08 12:14:35 -06:00
Nathaniel Nicandro
e032285f9a [WIP] Make ob-jupyter unaware of the REPL buffer
Try not to modify the REPL buffer in any way from `ob-jupyter` except for
inserting a code cell.
2018-02-07 17:28:33 -06:00
Nathaniel Nicandro
dc7c1e00e8 More generic extraction of image data from html image 2018-02-07 17:26:25 -06:00
Nathaniel Nicandro
83881bf4e0 Ensure the startup message is caught
Setup the necessary hooks before starting the kernel so that we can ensure that
the startup message is caught.

A short delay is also added whenever we start a channel. This was necessary for
the client to catch the startup message of a python kernel.
2018-02-07 12:08:07 -06:00
Nathaniel Nicandro
48c07e1f04 Do nothing when there is no render parameter when clearing/injecting one 2018-02-06 17:46:47 -06:00
Nathaniel Nicandro
5f902e1593 Remove unused code 2018-02-06 17:46:07 -06:00
Nathaniel Nicandro
a28952c643 Silence byte compiler 2018-02-06 17:45:53 -06:00
Nathaniel Nicandro
2a602246de Revert back to correct behavior 2018-02-06 17:45:12 -06:00
Nathaniel Nicandro
85efbf9c04 Refactor org-babel-jupyter-prepare-result
- Return the correct result when HTML contains only image data
  - Still need to handle all possible cases of the data URL scheme
- Add `org-babel-jupyter--image-result`
2018-02-06 16:49:48 -06:00
Nathaniel Nicandro
072dce7c00 Negligible changes 2018-02-04 18:22:56 -06:00
Nathaniel Nicandro
43fc5a6ab8 Remove superfluous newlines when executing code 2018-02-04 18:21:12 -06:00
Nathaniel Nicandro
731480a4dd Don't add a newline in stream output 2018-02-04 18:20:11 -06:00
Nathaniel Nicandro
f466b3adcc [WIP] Better support for display-data messages 2018-02-04 18:19:08 -06:00
Nathaniel Nicandro
8d7e0a3bd7 Update comments 2018-02-04 18:18:19 -06:00
Nathaniel Nicandro
90dd699a7a Update comments 2018-02-04 18:15:32 -06:00
Nathaniel Nicandro
2cb665e744 Check if the ioloop process is live in jupyter-channel-alive-p for async channels 2018-02-04 18:10:32 -06:00
Nathaniel Nicandro
e6d9fcbf5a Add kernel-died-cb for heartbeat channels
This is a callback function which is called when no response has been received
from the kernel after 5 `time-to-dead` periods.
2018-02-04 18:08:05 -06:00
Nathaniel Nicandro
a94c6cc4c6 Remove redundancy in org-babel-execute:jupyter 2018-02-04 18:06:55 -06:00
Nathaniel Nicandro
ca6c2ae37a Simplify wording of jupyter-add-callback documentation 2018-02-04 18:06:11 -06:00
Nathaniel Nicandro
8784b9fcc3 Update comments and documentation 2018-02-04 17:58:11 -06:00
Nathaniel Nicandro
09ef799535 Use jupyter-inhibit-handlers 2018-02-04 17:57:18 -06:00
Nathaniel Nicandro
4a0cff991d Add jupyter-ioloop-wait-until to wait for events from ioloop subprocess 2018-02-04 17:55:47 -06:00
Nathaniel Nicandro
2ffbf74149 Flush stdout after sending all messages in ioloop subprocess 2018-02-04 17:44:27 -06:00
Nathaniel Nicandro
fe323cf623 Properly stop channels in ioloop subprocess 2018-02-04 17:43:59 -06:00
Nathaniel Nicandro
290f3a2d96 Block until channel is alive in jupyter-start-channel for async channels 2018-02-04 17:43:20 -06:00
Nathaniel Nicandro
b72713b00c Remove the special behavior when dropping requests 2018-02-04 17:41:48 -06:00
Nathaniel Nicandro
74ccc47a6e Get the kernel language from the kernel-info slot of a jupyter-kernel-client 2018-02-04 17:41:13 -06:00
Nathaniel Nicandro
c6d78872cb Refactor the injection of render parameters when inserting results 2018-02-04 17:40:01 -06:00
Nathaniel Nicandro
84cf20c863 Simplify adding results 2018-02-04 17:38:24 -06:00
Nathaniel Nicandro
0dec139a3a Simplify synchronous output in org-babel-execute:jupyter 2018-02-04 17:36:29 -06:00
Nathaniel Nicandro
9fa2d34ec5 Add org-babel-jupyter-aliases-from-kernelspecs 2018-02-04 17:35:34 -06:00
Nathaniel Nicandro
7bc3021302 Unset require-final-newline when writing image files 2018-02-04 00:01:02 -06:00
Nathaniel Nicandro
1a4739fa19 Save the match data when searching html results 2018-02-03 23:48:42 -06:00
Nathaniel Nicandro
b680aee309 Set the default header args for Jupyter src block aliases 2018-02-03 23:48:14 -06:00
Nathaniel Nicandro
d15ba28956 Remove the need for the src block info in org-babel-execute:jupyter 2018-02-03 23:47:18 -06:00
Nathaniel Nicandro
f804f6fbfd Remove the need to pass the src block info to org-babel-jupyter-insert-results 2018-02-03 23:34:31 -06:00
Nathaniel Nicandro
562d6643e4 Remove the need for passing the src block info to orb-babel-jupyter-prepare-result 2018-02-03 23:31:10 -06:00
Nathaniel Nicandro
dae244f146 Fix mispelled word 2018-02-03 21:51:01 -06:00
Nathaniel Nicandro
84cc6d1b12 Add jupyter-repl-connected-p 2018-02-03 21:49:46 -06:00
Nathaniel Nicandro
aff2a6e925 Heavily refactor org-babel integration
- Externalize some of the functions implemented within the body of
  `org-babel-execute:jupyter`

- Use the `:status` callback to finalize the collected results

- Handle the `:display-data` messages
2018-02-03 21:14:53 -06:00
Nathaniel Nicandro
8d2272e75b Change group of ob-jupyter to org-babel 2018-02-03 21:10:21 -06:00