Hello Philip, I tested again and still can't reproduce the issue. ob-python doesn't change the indentation between individual lines of a code block, so this is strange. Do you have the same issue if you aren't using a session? Are you using tabs or spaces? (I tested with spaces)
On Sun, Jul 5, 2020 at 7:37 AM Philip Blagoveschensky <phi...@crabman.me> wrote: > Consider the following org-babel block: > > > > #+begin_src python :session bug_report > def foobar(): > for i in range(5): > pass > print "hello world" > > foobar() > #+end_src > > > > When I run it, this is what I see in the *bug_report* buffer: > > > > def foobar(): > ... for i in range(5): > ... pass > ... > >>> print "hello world" > File "<stdin>", line 1 > print "hello world" > ^ > IndentationError: unexpected indent > > >>> foobar() > >>> > >>> open('/tmp/babel-MOOCF9/python-UW5PEF', 'w').write(str(_)) > >>> > >>> > >>> 'org_babel_python_eoe' > >>> 'org_babel_python_eoe' > >>> > > > > So, org-babel incorrectly decided that the line with the print is not a > part of the function's definition and sent it to Python shell as a > separate statement. Instead, it should've sent it as a part of foobar's > definition. > > This problem persists > - If I use python3 instead of python2 > - If I replace > print "hello world" > with > return 42 > > This problem disappears if I add :results output to the source block. > > > Emacs : GNU Emacs 26.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.5) > of 2019-09-23, modified by Debian > Package: Org mode version 9.3.6 (9.3.6-elpa @ > /home/username/.emacs.d/elpa/org-9.3.6/) > > > current state: > ============== > (setq > org-src-mode-hook '(org-src-babel-configure-edit-buffer > org-src-mode-configure-edit-buffer) > org-link-shell-confirm-function 'yes-or-no-p > org-metadown-hook '(org-babel-pop-to-session-maybe) > org-clock-out-hook '(org-clock-remove-empty-clock-drawer) > org-mode-hook '(#[0 "\300\301\302\303\304$\207" > [add-hook change-major-mode-hook org-show-all append > local] > 5] > #[0 "\300\301\302\303\304$\207" > [add-hook change-major-mode-hook > org-babel-show-result-all append local] > 5] > org-babel-result-hide-spec org-babel-hide-all-hashes) > org-archive-hook '(org-attach-archive-delete-maybe) > org-confirm-elisp-link-function 'yes-or-no-p > org-agenda-before-write-hook '(org-agenda-add-entry-text) > org-metaup-hook '(org-babel-load-in-session-maybe) > org-bibtex-headline-format-function #[257 "\300 \236A\207" [:title] 3 > "\n\n(fn ENTRY)"] > org-babel-pre-tangle-hook '(save-buffer) > org-tab-first-hook '(org-babel-hide-result-toggle-maybe > org-babel-header-arg-expand) > org-babel-load-languages '((emacs-lisp . t) (python . t)) > org-occur-hook '(org-first-headline-recenter) > org-cycle-hook '(org-cycle-hide-archived-subtrees > org-cycle-show-empty-lines > org-optimize-window-after-visibility-change) > org-speed-command-hook '(org-speed-command-activate > org-babel-speed-command-activate) > org-babel-tangle-lang-exts '(("python" . "py") ("emacs-lisp" . "el") > ("elisp" . "el")) > org-confirm-shell-link-function 'yes-or-no-p > org-link-parameters '(("attachment" :follow org-attach-open-link :export > org-attach-export-link :complete > org-attach-complete-link) > ("id" :follow org-id-open) > ("eww" :follow eww :store org-eww-store-link) > ("rmail" :follow org-rmail-open :store > org-rmail-store-link) > ("mhe" :follow org-mhe-open :store > org-mhe-store-link) > ("irc" :follow org-irc-visit :store > org-irc-store-link :export org-irc-export) > ("info" :follow org-info-open :export > org-info-export :store org-info-store-link) > ("gnus" :follow org-gnus-open :store > org-gnus-store-link) > ("docview" :follow org-docview-open :export > org-docview-export :store org-docview-store-link) > ("bibtex" :follow org-bibtex-open :store > org-bibtex-store-link) > ("bbdb" :follow org-bbdb-open :export > org-bbdb-export :complete org-bbdb-complete-link > :store org-bbdb-store-link) > ("w3m" :store org-w3m-store-link) ("file+sys") > ("file+emacs") > ("shell" :follow org-link--open-shell) > ("news" :follow > #[257 "\301\300\302 Q!\207" > ["news" browse-url ":"] 5 "\n\n(fn URL)"] > ) > ("mailto" :follow > #[257 "\301\300\302 Q!\207" > ["mailto" browse-url ":"] 5 "\n\n(fn URL)"] > ) > ("https" :follow > #[257 "\301\300\302 Q!\207" > ["https" browse-url ":"] 5 "\n\n(fn URL)"] > ) > ("http" :follow > #[257 "\301\300\302 Q!\207" > ["http" browse-url ":"] 5 "\n\n(fn URL)"] > ) > ("ftp" :follow > #[257 "\301\300\302 Q!\207" > ["ftp" browse-url ":"] 5 "\n\n(fn URL)"] > ) > ("help" :follow org-link--open-help) > ("file" :complete org-link-complete-file) > ("elisp" :follow org-link--open-elisp) > ("doi" :follow org-link--open-doi)) > org-link-elisp-confirm-function 'yes-or-no-p > ) > > >