emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Herbert Sitz <hsitz@nwlink.com>
To: emacs-orgmode@gnu.org
Subject: Re: org-babel -- Improper syntax error in session mode?
Date: Mon, 20 Jun 2011 23:16:08 +0000 (UTC)	[thread overview]
Message-ID: <loom.20110621T011348-227@post.gmane.org> (raw)
In-Reply-To: 87aadcxl05.fsf@gmail.com

On Mon, Jun 20, 2011 at 2:15 PM, Eric Schulte <schulte.eric@gmail.com> wrote:
>
> As far as I can tell the problem with the block below (missing the
> space) is due to problems with the Python interpreter.

It's not due to any problem with the interpreter itself, it's due to a
purposeful design decision about the way the interactive shell should work.  It
makes good sense to require that extra line in interactive mode, given Python's
reliance on carriage-returns and indents as part of its syntax, along with
decision that the interactive output should be provided at the end of every
"level 1" block.  The blank line is the only way to end a "level 1 block without
starting a second level 1 block.

>>
>> I hope I'm not confusing things.
>
> No worries, however, I maintain that it is beyond the scope of Babel's
> Python interaction to address examples such as the one given above which
> do not work when typed into the Python verbatim session by the user.
>
>> The patch does help, but doesn't address the extra-line insertion
>> issue.
>
> Fair enough.
>

Maybe adding the extra lines is beyond Babel's scope, strictly speaking.  I can
think of some good reasons for doing it though:

(1a)  Babel is not an interactive shell.

(1b)  It's not obvious to the Babel user that sessions are being processed using
Python's interactive shell.  Even if that is known (I know it's somewhere in the
docs), it's not clear to a user why Babel would require a user to insert the
extra lines (and, it turns out, _avoid_ blank lines in other cases), which make
sense in interactive environment but not within Babel's non-interactive
environment.  Even if this particular idiosyncrasy is documented somewhere it's
going to cause confusion for users who skim the docs and just expect regular
Python code to work without problems.  (If I'm first to report the issue maybe
there aren't many Org users trying to use :session mode with Python, though.)

(2)  Isn't the blank-line issue an easy fix?  I think it requires just these two
simple changes to source block before submitting to python shell:  (a)  Regex
search replace to add a blank line before any "unindented" line that is preceded
by an indented line (actually it may work fine to just put blank line before
_any_ "unindented" textline in the source-block); and (b) deletion of all blank
lines in the source-block that are followed by "indented" text on next line.  


> Does it work for other "normal" Python interactive code blocks?  Have
> you noticed any places where the previous version worked but the new
> version doesn't?  If it seems safe then I would like to apply it.

I think the <Results> start with a stray blank line before what should be the
actual output.  Otherwise It does seem to be working well with the few more
complicated things I've created to throw at it.  

I'm not really a big Python user, was just doing some testing in my
vim-Org-clone with Python when I noticed the problem.  If you end up not
addressing the line-insertion issue I may put it on my todo-list for my first
real adventure in learning elisp.

Regards,

Herb

  reply	other threads:[~2011-06-20 23:16 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-19 21:54 org-babel -- Improper syntax error in session mode? Herbert Sitz
2011-06-19 23:21 ` Eric Schulte
2011-06-20  1:59   ` Herbert Sitz
2011-06-20  2:12   ` Herbert Sitz
2011-06-20  3:17     ` Nick Dokos
2011-06-20  3:46       ` Herbert Sitz
2011-06-20 19:23       ` Eric Schulte
2011-06-20 20:45         ` Herbert Sitz
2011-06-20 21:15           ` Eric Schulte
2011-06-20 23:16             ` Herbert Sitz [this message]
2011-06-21  0:08               ` Nick Dokos
2011-06-21  0:27                 ` Herbert Sitz
     [not found]                   ` <hesitz@gmail.com>
2011-06-21  1:17                     ` Nick Dokos
2011-06-21  2:19               ` Eric Schulte
2011-06-21  5:13                 ` Herbert Sitz
2011-06-21  7:15                   ` Thomas S. Dye
2011-06-21 15:35                     ` Herbert Sitz
2011-06-21 16:27                       ` Thomas S. Dye
2011-06-21 17:42                         ` Eric Schulte
2011-06-21 17:51                         ` Herbert Sitz
2011-06-21 17:52                       ` Eric Schulte
2011-06-27 18:09                         ` Herbert Sitz
2011-06-21 17:26                   ` Eric Schulte
2011-06-27 18:22                     ` Herbert Sitz
2011-06-20 21:18     ` Jambunathan K

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=loom.20110621T011348-227@post.gmane.org \
    --to=hsitz@nwlink.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).