emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [BUG] Org babel python async can't return values
@ 2024-06-25 10:14 Sam Crawford
  2024-06-26 13:01 ` Ihor Radchenko
  0 siblings, 1 reply; 2+ messages in thread
From: Sam Crawford @ 2024-06-25 10:14 UTC (permalink / raw)
  To: emacs-orgmode@gnu.org

This may be MacOS specific, but I noticed that :async yes only works
with :results output; :results value never returns.

A MWE is:

#+begin_src python :async yes :results value :session python
  12
#+end_src

This ought to return 12, but the "#+RESULTS:" field only ever shows
the value of the temp file

I believe the issue comes from the regexp used for
org-babel-comint-async-indicator on line 540 of ob-ipython.el. It is
currently "ob_comint_async_python_\\(.+\\)_\\(.+\\)", which means
that, if the temp file's path contains underscores (this is the bit I
believe is MacOS specific), the regex will greedily consume those
underscores, and (match-string 1) will fail to identify what type of
results we have.

I'm not too familiar with the code but, given that the first group
seems to only ever be a simple word, perhaps the replacing this regexp
with "ob_comint_async_python_\\(\\w+\\)_\\(.+\\)" would be sufficient?


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [BUG] Org babel python async can't return values
  2024-06-25 10:14 [BUG] Org babel python async can't return values Sam Crawford
@ 2024-06-26 13:01 ` Ihor Radchenko
  0 siblings, 0 replies; 2+ messages in thread
From: Ihor Radchenko @ 2024-06-26 13:01 UTC (permalink / raw)
  To: Sam Crawford; +Cc: emacs-orgmode@gnu.org

Sam Crawford <sam@crawf.uk> writes:

> A MWE is:
>
> #+begin_src python :async yes :results value :session python
>   12
> #+end_src
> ...
> I believe the issue comes from the regexp used for
> org-babel-comint-async-indicator on line 540 of ob-ipython.el. It is
> currently "ob_comint_async_python_\\(.+\\)_\\(.+\\)", which means
> that, if the temp file's path contains underscores (this is the bit I
> believe is MacOS specific), the regex will greedily consume those
> underscores, and (match-string 1) will fail to identify what type of
> results we have.
>
> I'm not too familiar with the code but, given that the first group
> seems to only ever be a simple word, perhaps the replacing this regexp
> with "ob_comint_async_python_\\(\\w+\\)_\\(.+\\)" would be sufficient?

Thanks for reporting!
Fixed, on bugfix.
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=498fd25d2

At least, I did make the regexp stricter. Please let me know if you are
still seeing problems.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-06-26 13:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-25 10:14 [BUG] Org babel python async can't return values Sam Crawford
2024-06-26 13:01 ` Ihor Radchenko

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).