mirror of
https://github.com/vale981/emacs-ipython-notebook
synced 2025-03-05 09:01:40 -05:00
ob-ein: expander prolly not right idea
This commit is contained in:
parent
943409e34e
commit
52c7ae1b74
1 changed files with 22 additions and 17 deletions
|
@ -58,6 +58,7 @@
|
||||||
(autoload 'ein:kernel-live-p "ein-kernel")
|
(autoload 'ein:kernel-live-p "ein-kernel")
|
||||||
(autoload 'ein:query-singleton-ajax "ein-query")
|
(autoload 'ein:query-singleton-ajax "ein-query")
|
||||||
(autoload 'ein:output-area-case-type "ein-output-area")
|
(autoload 'ein:output-area-case-type "ein-output-area")
|
||||||
|
(autoload 'ein:log "ein-log")
|
||||||
|
|
||||||
(defvar *ob-ein-sentinel* "[....]"
|
(defvar *ob-ein-sentinel* "[....]"
|
||||||
"Placeholder string replaced after async cell execution")
|
"Placeholder string replaced after async cell execution")
|
||||||
|
@ -159,19 +160,27 @@ Based on ob-ipython--configure-kernel."
|
||||||
`(lambda (body params)
|
`(lambda (body params)
|
||||||
(require (quote ,(intern (format "ob-%s" lang-mode))) nil t)
|
(require (quote ,(intern (format "ob-%s" lang-mode))) nil t)
|
||||||
(custom-set-variables '(python-indent-guess-indent-offset-verbose nil))
|
(custom-set-variables '(python-indent-guess-indent-offset-verbose nil))
|
||||||
(let* ((parser
|
(let ((parser
|
||||||
(quote
|
(quote
|
||||||
,(intern
|
,(intern (format "org-babel-variable-assignments:%s" lang-mode))))
|
||||||
(format "org-babel-variable-assignments:%s" lang-mode))))
|
(expander
|
||||||
(assignments (if (fboundp parser)
|
(quote
|
||||||
(funcall (symbol-function parser) params)
|
,(intern (format "org-babel-expand-body:%s" lang-mode)))))
|
||||||
(ein:log 'verbose "%s: No suitable ob-%s module"
|
(ob-ein--execute-body
|
||||||
(concat "org-babel-execute:" ,lang-name)
|
(cond ((fboundp expander)
|
||||||
(quote ,lang-mode))
|
(funcall (symbol-function expander)
|
||||||
nil)))
|
(encode-coding-string body 'utf-8)
|
||||||
(ob-ein--execute-body body params assignments)))))
|
params))
|
||||||
|
((fboundp parser)
|
||||||
|
(org-babel-expand-body:generic
|
||||||
|
body params (funcall (symbol-function parser) params)))
|
||||||
|
(t (ein:log 'verbose "%s: No org-babel-expand-body:%s"
|
||||||
|
(concat "org-babel-execute:" ,lang-name)
|
||||||
|
(quote ,lang-mode))
|
||||||
|
nil))
|
||||||
|
params)))))
|
||||||
|
|
||||||
(defun ob-ein--execute-body (body params assignments)
|
(defun ob-ein--execute-body (body params)
|
||||||
(let* ((buffer (current-buffer))
|
(let* ((buffer (current-buffer))
|
||||||
(processed-params (org-babel-process-params params))
|
(processed-params (org-babel-process-params params))
|
||||||
(result-params (cdr (assq :result-params params)))
|
(result-params (cdr (assq :result-params params)))
|
||||||
|
@ -186,14 +195,10 @@ Based on ob-ipython--configure-kernel."
|
||||||
(error "ob-ein--execute-body: %s not among %s"
|
(error "ob-ein--execute-body: %s not among %s"
|
||||||
lang (mapcar #'car org-src-lang-modes)))))
|
lang (mapcar #'car org-src-lang-modes)))))
|
||||||
(name (ob-ein--get-name-create (org-babel-get-src-block-info)))
|
(name (ob-ein--get-name-create (org-babel-get-src-block-info)))
|
||||||
(full-body (org-babel-expand-body:generic
|
|
||||||
(encode-coding-string body 'utf-8)
|
|
||||||
params
|
|
||||||
assignments))
|
|
||||||
(callback (lambda (notebook)
|
(callback (lambda (notebook)
|
||||||
(ob-ein--execute-async
|
(ob-ein--execute-async
|
||||||
buffer
|
buffer
|
||||||
full-body
|
body
|
||||||
(ein:$notebook-kernel notebook)
|
(ein:$notebook-kernel notebook)
|
||||||
processed-params
|
processed-params
|
||||||
result-params
|
result-params
|
||||||
|
|
Loading…
Add table
Reference in a new issue