From: "Ondřej Grover" <ondrej.grover@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: Proposal and RFC for improving ob-python
Date: Thu, 10 Dec 2015 08:47:47 +0100 [thread overview]
Message-ID: <CAOyjJOLYyDOW=St72DPx+MmC-e4gBYD2u2aZaUMtHHK7F5RWgQ@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1682 bytes --]
Thank you for the feedback Kyle.
> As I understand it (and if I'm remembering correctly), there are at
> least three issues with ob-python sessions:
4. session and non-session code differs significantly as you have already
mentioned
> So for non-session code and value results, the main idea is to get rid
> of the need for "return" at the end?
>
Yes, that's the greatest offense to the Python code.
>
> This seems useful to me. Requiring a trailing "return", which is a
> syntax error when the code is taken by itself, is a quirk of the
> implementation (the code ends up being wrapped in a function to get the
> return value). Also, it would allow switching from ":results value" to
> ":results output" without needing to remove "return" in order to avoid a
> syntax error.
>
Yes, these would be the obvious benefits.
> But what about when :results != value? Doesn't your proposal only
> handle returning the last value?
>
You mean :results output ? In that case it could just omit the
"open(...).write(...) " part and capture anything the console prints before
the primary prompt appears again.
Or it could capture stdout into a file, but I think that's needlessly
complicated:
python -i << HEREDOC_END
import sys
sys.stdout = open(<TMP FILE or PIPE>) # replace stdout with some file
_ = block_eval("""
<CODE BLOCK BODY>
""")
sys.stdout.close()
sys.stdout = sys.__stdout__ # restore stdout
HEREDOC_END
After thinking about this, perhaps it is better to capture the block result
into "_" instead of "ret", because
a) it prevents name clashes
b) it is more in line with what "_" is used for
Kind regards,
Ondřej Grover
[-- Attachment #2: Type: text/html, Size: 2995 bytes --]
next reply other threads:[~2015-12-10 7:48 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-10 7:47 Ondřej Grover [this message]
2015-12-11 3:39 ` Proposal and RFC for improving ob-python Kyle Meyer
-- strict thread matches above, loose matches on Subject: below --
2015-12-07 19:22 Ondřej Grover
2015-12-07 20:27 ` Kyle Meyer
2015-12-08 7:43 ` Ondřej Grover
2015-12-07 20:36 ` Thomas S. Dye
2015-12-07 20:51 ` Achim Gratz
2015-12-05 17:17 Ondřej Grover
2015-12-10 7:22 ` Kyle Meyer
2016-08-29 12:53 ` Greg Minshall
2016-08-30 19:17 ` John Kitchin
2016-08-31 2:44 ` Greg Minshall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAOyjJOLYyDOW=St72DPx+MmC-e4gBYD2u2aZaUMtHHK7F5RWgQ@mail.gmail.com' \
--to=ondrej.grover@gmail.com \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).