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
This commit is contained in:
Dan Davison 2010-10-21 12:28:19 +01:00
parent 33f836e701
commit 2699f4e9bc
1 changed files with 8 additions and 14 deletions

View File

@ -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)