Skip to content

Commit 11ace8c

Browse files
committed
ob-jupyter: Don't generate Org src-block aliases at top-level
closes #443
1 parent a499c71 commit 11ace8c

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

ob-jupyter.el

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
(declare-function org-element-at-point "org-element")
4343
(declare-function org-element-property "org-element" (property element))
4444
(declare-function org-element-context "org-element" (&optional element))
45+
(declare-function org-babel-execute-src-block "ob-core" (&optional arg info params executor-type))
4546
(declare-function org-babel-variable-assignments:python "ob-python" (params))
4647
(declare-function org-babel-expand-body:generic "ob-core" (body params &optional var-lines))
4748
(declare-function org-export-derived-backend-p "ox" (backend &rest backends))
@@ -777,7 +778,17 @@ mapped to their appropriate minted language in
777778

778779
;;; Hook into `org'
779780

780-
(org-babel-jupyter-aliases-from-kernelspecs)
781+
;; Defer generation of the aliases until the first call to
782+
;; `org-babel-execute-src-block' to avoid generating them at top-level
783+
;; when loading ob-jupyter. Some users, e.g. those who use conda
784+
;; environments, may not have a jupyter command available at load
785+
;; time.
786+
(defun org-babel-jupyter--aliases-advice (&rest _)
787+
(let ((default-directory user-emacs-directory))
788+
(org-babel-jupyter-aliases-from-kernelspecs))
789+
(advice-remove #'org-babel-execute-src-block #'org-babel-jupyter--aliases-advice))
790+
(advice-add #'org-babel-execute-src-block :before #'org-babel-jupyter--aliases-advice)
791+
781792
(add-hook 'org-export-before-processing-hook #'org-babel-jupyter-setup-export)
782793
(add-hook 'org-export-before-parsing-hook #'org-babel-jupyter-strip-ansi-escapes)
783794

test/test-helper.el

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,8 @@ should have PROP with VAL."
494494
(require 'org)
495495
(require 'ob-python)
496496
(require 'ob-julia nil t)
497-
(require 'ob-jupyter))
497+
(require 'ob-jupyter)
498+
(org-babel-jupyter-aliases-from-kernelspecs))
498499
(unless jupyter-org-test-buffer
499500
(setq jupyter-org-test-buffer (get-buffer-create "ob-jupyter-test"))
500501
(with-current-buffer jupyter-org-test-buffer

0 commit comments

Comments
 (0)