;;; ob-reticulate.el --- Babel Functions for reticulate -*- lexical-binding: t; -*- ;; Copyright (C) 2020 Free Software Foundation, Inc. ;; Author: Jack Kamm ;; Keywords: literate programming, reproducible research, R, statistics ;; Homepage: https://orgmode.org ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;; Org-Babel support for the R package reticulate. ;;; Code: (require 'ob-R) (require 'ob-python) (defalias 'org-babel-edit-prep:reticulate 'org-babel-edit-prep:R) (defun org-babel-execute:reticulate (body params) (let* ((tmp-src-file (org-babel-temp-file "reticulate-")) (result-type (cdr (assq :result-type params)))) (with-temp-file tmp-src-file (insert body)) (org-babel-execute:R (format (concat "reticulate::py_run_string(\"%s\")" (when (equal result-type 'value) " reticulate::py$`__org_babel_python_final`")) (format org-babel-python--eval-ast (org-babel-process-file-name tmp-src-file 'noquote))) params))) (provide 'ob-reticulate) ;;; ob-reticulate.el ends here