diff options
author | Dan Davison <davison@stats.ox.ac.uk> | 2010-10-21 12:28:19 +0100 |
---|---|---|
committer | Dan Davison <davison@stats.ox.ac.uk> | 2010-10-21 13:06:03 +0100 |
commit | 2699f4e9bc7695432cf6aaf1dd48e182b10c2847 (patch) | |
tree | 3730b2fb26e00fa2286257328ec5410d49896fce | |
parent | 33f836e701d3fd06ff845ef5c7add6f14c76ef48 (diff) | |
download | org-mode-2699f4e9bc7695432cf6aaf1dd48e182b10c2847.tar.gz |
babel: python: New variable assignment and expansion scheme
* ob-python.el (org-babel-execute:python): Use generic
expansion function
(org-babel-prep-session:python): Change name of called function
(org-babel-variable-assignments:python): Change function name
(org-babel-expand-body:python): Delete function
-rw-r--r-- | lisp/ob-python.el | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/lisp/ob-python.el b/lisp/ob-python.el index 6b3c423..0697028 100644 --- a/lisp/ob-python.el +++ b/lisp/ob-python.el @@ -48,16 +48,6 @@ "Preferred python mode for use in running python interactively.") (defvar org-src-preserve-indentation) -(defun org-babel-expand-body:python (body params) - "Expand BODY according to PARAMS, return the expanded body." - (let ((var-lines (org-babel-python-variable-assignments params))) - (mapconcat - #'identity - (append - (org-babel-python-variable-assignments params) - (list - (org-babel-trim body (if org-src-preserve-indentation "[\f\n\r\v]")))) - "\n"))) (defun org-babel-execute:python (body params) "Execute a block of Python code with Babel. @@ -66,7 +56,9 @@ This function is called by `org-babel-execute-src-block'." (session (org-babel-python-initiate-session (first processed-params))) (result-params (nth 2 processed-params)) (result-type (nth 3 processed-params)) - (full-body (org-babel-expand-body:python body params)) + (full-body + (org-babel-expand-body:generic + body params (org-babel-variable-assignments:python params))) (result (org-babel-python-evaluate session full-body result-type result-params))) (or (cdr (assoc :file params)) @@ -78,9 +70,11 @@ This function is called by `org-babel-execute-src-block'." (cdr (assoc :rownames params))))))) (defun org-babel-prep-session:python (session params) - "Prepare SESSION according to the header arguments in PARAMS." + "Prepare SESSION according to the header arguments in PARAMS. +VARS contains resolved variable references" (let* ((session (org-babel-python-initiate-session session)) - (var-lines (org-babel-python-variable-assignments params))) + (var-lines + (org-babel-variable-assignments:python params))) (org-babel-comint-in-buffer session (mapc (lambda (var) (end-of-line 1) (insert var) (comint-send-input) @@ -98,7 +92,7 @@ This function is called by `org-babel-execute-src-block'." ;; helper functions -(defun org-babel-python-variable-assignments (params) +(defun org-babel-variable-assignments:python (params) "Return list of python statements assigning the block's variables" (mapcar (lambda (pair) |