Function: org-babel-python--send-string

org-babel-python--send-string is a byte-compiled function defined in ob-python.el.gz.

Signature

(org-babel-python--send-string SESSION BODY)

Documentation

Pass BODY to the Python process in SESSION.

Return output.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-python.el.gz
(defun org-babel-python--send-string (session body)
  "Pass BODY to the Python process in SESSION.
Return output."
  (with-current-buffer session
    (let* ((string-buffer "")
	   (comint-output-filter-functions
	    (cons (lambda (text) (setq string-buffer
				       (concat string-buffer text)))
		  comint-output-filter-functions))
	   (body (format "\
try:
%s
except:
    raise
finally:
    print('%s')"
			 (org-babel-python--shift-right body 4)
			 org-babel-python-eoe-indicator)))
      (if (not (eq 'python-mode org-babel-python-mode))
	  (let ((python-shell-buffer-name
		 (org-babel-python-without-earmuffs session)))
	    (python-shell-send-string body))
	(require 'python-mode)
	(py-shell-send-string body (get-buffer-process session)))
      ;; same as `python-shell-comint-end-of-output-p' in emacs-25.1+
      (while (not (string-match
		   org-babel-python-eoe-indicator
		   string-buffer))
	(accept-process-output (get-buffer-process (current-buffer))))
      (org-babel-chomp (substring string-buffer 0 (match-beginning 0))))))