Przeglądaj źródła

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
Dan Davison 14 lat temu
rodzic
commit
2699f4e9bc
1 zmienionych plików z 8 dodań i 14 usunięć
  1. 8 14
      lisp/ob-python.el

+ 8 - 14
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)