summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Davison <davison@stats.ox.ac.uk>2010-10-21 12:28:19 +0100
committerDan Davison <davison@stats.ox.ac.uk>2010-10-21 13:06:03 +0100
commit2699f4e9bc7695432cf6aaf1dd48e182b10c2847 (patch)
tree3730b2fb26e00fa2286257328ec5410d49896fce
parent33f836e701d3fd06ff845ef5c7add6f14c76ef48 (diff)
downloadorg-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.el22
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)