* Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)]
@ 2020-06-30 11:09 Philip Blagoveschensky
2020-07-06 12:57 ` ian martins
0 siblings, 1 reply; 9+ messages in thread
From: Philip Blagoveschensky @ 2020-06-30 11:09 UTC (permalink / raw)
To: emacs-orgmode
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\x01\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\x03Q!\207"
["news" browse-url ":"] 5 "\n\n(fn URL)"]
)
("mailto" :follow
#[257 "\301\300\302\x03Q!\207"
["mailto" browse-url ":"] 5 "\n\n(fn URL)"]
)
("https" :follow
#[257 "\301\300\302\x03Q!\207"
["https" browse-url ":"] 5 "\n\n(fn URL)"]
)
("http" :follow
#[257 "\301\300\302\x03Q!\207"
["http" browse-url ":"] 5 "\n\n(fn URL)"]
)
("ftp" :follow
#[257 "\301\300\302\x03Q!\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
)
^ permalink raw reply [flat|nested] 9+ messages in thread
* Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)]
@ 2020-07-01 16:55 Philip Blagoveschensky
2020-07-01 18:48 ` Andreas Röhler
2020-07-01 19:05 ` ian martins
0 siblings, 2 replies; 9+ messages in thread
From: Philip Blagoveschensky @ 2020-07-01 16:55 UTC (permalink / raw)
To: emacs-orgmode
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\x01\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\x03Q!\207"
["news" browse-url ":"] 5 "\n\n(fn URL)"]
)
("mailto" :follow
#[257 "\301\300\302\x03Q!\207"
["mailto" browse-url ":"] 5 "\n\n(fn URL)"]
)
("https" :follow
#[257 "\301\300\302\x03Q!\207"
["https" browse-url ":"] 5 "\n\n(fn URL)"]
)
("http" :follow
#[257 "\301\300\302\x03Q!\207"
["http" browse-url ":"] 5 "\n\n(fn URL)"]
)
("ftp" :follow
#[257 "\301\300\302\x03Q!\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
)
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)]
2020-07-01 16:55 Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)] Philip Blagoveschensky
@ 2020-07-01 18:48 ` Andreas Röhler
2020-07-01 19:05 ` ian martins
1 sibling, 0 replies; 9+ messages in thread
From: Andreas Röhler @ 2020-07-01 18:48 UTC (permalink / raw)
To: emacs-orgmode
On 01.07.20 18:55, Philip Blagoveschensky wrote:
> #+begin_src python :session bug_report
> def foobar():
> for i in range(5):
> pass
> print "hello world"
>
> foobar()
> #+end_src
Works here like this:
#+begin_src python :results output
def foobar():
for i in range(5):
pass
print("hello world")
foobar()
#+end_src
#+RESULTS:
: hello world
GNU Emacs 28.0.50 (build 1, i686-pc-linux-gnu, GTK+ Version 3.14.5,
cairo version 1.14.0) of 2020-06-10
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)]
2020-07-01 16:55 Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)] Philip Blagoveschensky
2020-07-01 18:48 ` Andreas Röhler
@ 2020-07-01 19:05 ` ian martins
1 sibling, 0 replies; 9+ messages in thread
From: ian martins @ 2020-07-01 19:05 UTC (permalink / raw)
To: Philip Blagoveschensky; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 6358 bytes --]
your example works for me without any changes. "return 42" works as well.
it returns None and there are no errors in the *bug_report* buffer.
I'm using:
GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22,
modified by Debian
Org mode version 9.3.6 (release_9.3.6-739-g0c1740.dirty @
/home/ian/code/elisp/org-mode/lisp/)
On Wed, Jul 1, 2020 at 12:57 PM Philip Blagoveschensky <philip@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
> )
>
>
>
[-- Attachment #2: Type: text/html, Size: 8787 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)]
2020-06-30 11:09 Philip Blagoveschensky
@ 2020-07-06 12:57 ` ian martins
2020-07-06 19:18 ` Philip Blagoveschensky
0 siblings, 1 reply; 9+ messages in thread
From: ian martins @ 2020-07-06 12:57 UTC (permalink / raw)
To: Philip Blagoveschensky; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 6304 bytes --]
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 <philip@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
> )
>
>
>
[-- Attachment #2: Type: text/html, Size: 8702 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)]
2020-07-06 12:57 ` ian martins
@ 2020-07-06 19:18 ` Philip Blagoveschensky
2020-07-07 11:31 ` ian martins
0 siblings, 1 reply; 9+ messages in thread
From: Philip Blagoveschensky @ 2020-07-06 19:18 UTC (permalink / raw)
To: ian martins; +Cc: emacs-orgmode
Hi Ian,
>Do you have the same issue if you aren't using a session?
If I run the following code block (this time I am using python 3, so
there are parens in the print line)
#+begin_src python
def foobar():
for i in range(5):
pass
print("hello world")
return 3
return foobar()
#+end_src
I get
#+RESULTS:
: 3
so I know it worked fine.
But if I add session like this:
#+begin_src python :session bug_report
def foobar():
for i in range(5):
pass
print("hello world")
return 3
return foobar()
#+end_src
then in *bug_report* I get
>>> def foobar():
... for i in range(5):
... pass
...
>>> print("hello world")
File "<stdin>", line 1
print("hello world")
^
IndentationError: unexpected indent
return 3
>>>
File "<stdin>", line 1
return 3
^
IndentationError: unexpected indent
>>> return foobar()
>>>
File "<stdin>", line 1
SyntaxError: 'return' outside function
>>> open('/tmp/babel-D0mRnD/python-CJ6UtT', 'w').write(str(_))
>>>
20
>>>
>>> 'org_babel_python_eoe'
>>> 'org_babel_python_eoe'
>>>
>Are you using tabs or spaces?
I used spaces. 4 spaces per indentation level, to be exact.
Also, FYI, as it might be relevant information, the shell buffer
contents I posted above happen if the session has been created
previously. If, instead, this is the first time I run some code in this
session, then I also get another error - NameError (see below). Below
you can see the contents of *bug_report* buffer if I run this code cell
in a not-yet-existing session.
def foobar():
Python 3.8.2 | packaged by conda-forge | (default, Mar 5 2020, 17:11:00)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> ... for i in range(5):
... pass
...
>>> print("hello world")
File "<stdin>", line 1
print("hello world")
^
IndentationError: unexpected indent return 3
>>>
File "<stdin>", line 1
return 3
^
IndentationError: unexpected indent
>>> return foobar()
>>>
File "<stdin>", line 1
SyntaxError: 'return' outside function
>>> open('/tmp/babel-D0mRnD/python-MsDjEk', 'w').write(str(_))
>>>
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name '_' is not defined
>>>
>>> 'org_babel_python_eoe'
>>> 'org_babel_python_eoe'
>>>
If you have a suggestion on how to debug this, feel free to tell.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)]
2020-07-06 19:18 ` Philip Blagoveschensky
@ 2020-07-07 11:31 ` ian martins
2020-07-19 15:33 ` Jack Kamm
0 siblings, 1 reply; 9+ messages in thread
From: ian martins @ 2020-07-07 11:31 UTC (permalink / raw)
To: Philip Blagoveschensky; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 3356 bytes --]
I was able to reproduce the error. I started emacs without my init file
(emacs -q) and then
,----
| (add-to-list 'load-path "~/code/elisp/org-mode/lisp")
| (require 'ob-python)
| (org-babel-do-load-languages 'org-babel-load-languages `((python . t)))
`----
in scratch, and then ran your test. I got the same errors you described. I
redid the test but loaded the lastest org-mode and there was no error. This
means you probably don't need to debug this. It has been fixed in the
latest version, but the fix hasn't been updated in the elpa package yet.
you can either wait for the next release or pull the latest code from the
repo.
On Mon, Jul 6, 2020 at 3:18 PM Philip Blagoveschensky <philip@crabman.me>
wrote:
> Hi Ian,
>
> >Do you have the same issue if you aren't using a session?
>
> If I run the following code block (this time I am using python 3, so
> there are parens in the print line)
>
> #+begin_src python
> def foobar():
> for i in range(5):
> pass
> print("hello world")
> return 3
>
> return foobar()
> #+end_src
>
> I get
>
> #+RESULTS:
> : 3
>
> so I know it worked fine.
>
> But if I add session like this:
>
> #+begin_src python :session bug_report
> def foobar():
> for i in range(5):
> pass
> print("hello world")
> return 3
>
> return foobar()
> #+end_src
>
> then in *bug_report* I get
>
> >>> def foobar():
> ... for i in range(5):
> ... pass
> ...
> >>> print("hello world")
> File "<stdin>", line 1
> print("hello world")
> ^
> IndentationError: unexpected indent
> return 3
> >>>
> File "<stdin>", line 1
> return 3
> ^
> IndentationError: unexpected indent
> >>> return foobar()
> >>>
> File "<stdin>", line 1
> SyntaxError: 'return' outside function
> >>> open('/tmp/babel-D0mRnD/python-CJ6UtT', 'w').write(str(_))
> >>>
> 20
> >>>
> >>> 'org_babel_python_eoe'
> >>> 'org_babel_python_eoe'
> >>>
>
> >Are you using tabs or spaces?
>
> I used spaces. 4 spaces per indentation level, to be exact.
>
> Also, FYI, as it might be relevant information, the shell buffer
> contents I posted above happen if the session has been created
> previously. If, instead, this is the first time I run some code in this
> session, then I also get another error - NameError (see below). Below
> you can see the contents of *bug_report* buffer if I run this code cell
> in a not-yet-existing session.
>
> def foobar():
> Python 3.8.2 | packaged by conda-forge | (default, Mar 5 2020, 17:11:00)
> [GCC 7.3.0] on linux
> Type "help", "copyright", "credits" or "license" for more information.
> >>> ... for i in range(5):
> ... pass
> ...
> >>> print("hello world")
> File "<stdin>", line 1
> print("hello world")
> ^
> IndentationError: unexpected indent return 3
>
> >>>
> File "<stdin>", line 1
> return 3
> ^
> IndentationError: unexpected indent
> >>> return foobar()
> >>>
> File "<stdin>", line 1
> SyntaxError: 'return' outside function
> >>> open('/tmp/babel-D0mRnD/python-MsDjEk', 'w').write(str(_))
> >>>
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> NameError: name '_' is not defined
> >>>
> >>> 'org_babel_python_eoe'
> >>> 'org_babel_python_eoe'
> >>>
>
> If you have a suggestion on how to debug this, feel free to tell.
>
[-- Attachment #2: Type: text/html, Size: 4724 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)]
2020-07-07 11:31 ` ian martins
@ 2020-07-19 15:33 ` Jack Kamm
2020-10-10 23:57 ` Jack Kamm
0 siblings, 1 reply; 9+ messages in thread
From: Jack Kamm @ 2020-07-19 15:33 UTC (permalink / raw)
To: ian martins, Philip Blagoveschensky; +Cc: emacs-orgmode
> I redid the test but loaded the lastest org-mode and there was no
> error. This means you probably don't need to debug this. It has been
> fixed in the latest version, but the fix hasn't been updated in the
> elpa package yet. you can either wait for the next release or pull
> the latest code from the repo.
Thanks for checking this Ian, I believe that this issue would have been
fixed by this patch:
https://orgmode.org/list/87pnfdo88v.fsf@gmail.com/
But I've been too swamped to check.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)]
2020-07-19 15:33 ` Jack Kamm
@ 2020-10-10 23:57 ` Jack Kamm
0 siblings, 0 replies; 9+ messages in thread
From: Jack Kamm @ 2020-10-10 23:57 UTC (permalink / raw)
To: ian martins, Philip Blagoveschensky; +Cc: emacs-orgmode
Checking back in on this since Org 9.4 has been released. This issue
should be fixed now, and my tests corroborate this. If you're still
experiencing this problem after updating, please let me know.
Best,
Jack
Jack Kamm <jackkamm@gmail.com> writes:
>> I redid the test but loaded the lastest org-mode and there was no
>> error. This means you probably don't need to debug this. It has been
>> fixed in the latest version, but the fix hasn't been updated in the
>> elpa package yet. you can either wait for the next release or pull
>> the latest code from the repo.
>
> Thanks for checking this Ian, I believe that this issue would have been
> fixed by this patch:
>
> https://orgmode.org/list/87pnfdo88v.fsf@gmail.com/
>
> But I've been too swamped to check.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-10-10 23:57 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-07-01 16:55 Bug: org-babel python with :results value sends function definition with a statement after a for loop to the shell incorrectly [9.3.6 (9.3.6-elpa @ /home/username/.emacs.d/elpa/org-9.3.6/)] Philip Blagoveschensky
2020-07-01 18:48 ` Andreas Röhler
2020-07-01 19:05 ` ian martins
-- strict thread matches above, loose matches on Subject: below --
2020-06-30 11:09 Philip Blagoveschensky
2020-07-06 12:57 ` ian martins
2020-07-06 19:18 ` Philip Blagoveschensky
2020-07-07 11:31 ` ian martins
2020-07-19 15:33 ` Jack Kamm
2020-10-10 23:57 ` Jack Kamm
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).