From 0b44c3f1c7454e7948cd34eb02995924046b6976 Mon Sep 17 00:00:00 2001 From: Jack Kamm Date: Mon, 17 Feb 2020 08:11:49 -0800 Subject: [PATCH] ob-python: Session returns empty string if no return value * lisp/ob-python.el (org-babel-python--eval-ast): Change sessions to return an empty string, instead of None, if there is no return value. --- etc/ORG-NEWS | 12 +++++++----- lisp/ob-python.el | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index b6ee443e4..1b5429870 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -12,13 +12,15 @@ Please send Org bug reports to mailto:emacs-orgmode@gnu.org. * Version 9.4 (not yet released) ** Incompatible changes -*** Python session return values must be top-level expression statements +*** Change how Python sessions handle return values Python blocks with ~:session :results value~ header arguments now only -return a value if the last line is a top-level expression statement, -otherwise the result is None. Also, None will now show up under -"#+RESULTS:", as it already did with ~:results value~ for non-session -blocks. +return a value if the last line is a top-level expression +statement. If the last line is not a top-level expression statement, +the block will return a blank (empty) result. + +Also, a return value of ~None~ will now show up under "#+RESULTS:", as +it already did for non-session blocks. *** In HTML export, change on how outline-container-* is set diff --git a/lisp/ob-python.el b/lisp/ob-python.el index de718b04b..b9e36dba0 100644 --- a/lisp/ob-python.el +++ b/lisp/ob-python.el @@ -260,7 +260,7 @@ (defconst org-babel-python--eval-ast "\ __org_babel_python_final.value), '', 'eval')) else: exec(compile(__org_babel_python_ast, '', 'exec')) - __org_babel_python_final = None + __org_babel_python_final = '' except Exception: from traceback import format_exc __org_babel_python_final = format_exc() -- 2.25.0