emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Dan Davison <davison@stats.ox.ac.uk>
To: maurizio.vitale@polymath-solutions.com
Cc: emacs-orgmode@gnu.org
Subject: Re: [babel] passing tables to python source blocks
Date: Fri, 26 Mar 2010 20:14:17 -0400	[thread overview]
Message-ID: <87vdciboyu.fsf@stats.ox.ac.uk> (raw)
In-Reply-To: <87wrwyhiay.fsf@cuma.i-did-not-set--mail-host-address--so-tickle-me> (Maurizio Vitale's message of "Fri, 26 Mar 2010 17:41:41 -0400")

Maurizio Vitale
<mav@cuma.i-did-not-set--mail-host-address--so-tickle-me> writes:

> Hi,
>     I get the following error when passing a table containing a line
> separator (like mounts below). It looks like the table is first exported
> to ASCII (and the horizontal line mapped to hline), but hline is not
> known in python-land. Would it be possible to discard it instead?

Hi Maurizio,

Yes. I've put a patch below which is a quick hack discarding the 'hline
for python. But I don't propose we apply it to the public version.

The question is whether we merely discard the hline or in fact discard
the entire header line as well. I think the correct solution is to make
python (and other languages) interpret the :colnames argument
appropriately (currently only R pays attention to this).

I would welcome any views on how this should be done consistently across
languages, given that some languages (e.g. R) have a concept of column
and row names for tabular data structures while other languages do
not. We need to specify the behaviour for tables being sent to
languages, and for tables being received from languages.

Julien Barnier has been working on adding :rownames for R recently. I
posted a reply to Julien yesterday 

http://permalink.gmane.org/gmane.emacs.orgmode/23324

containing an org file for testing :colnames and :rownames.

Dan


--8<---------------cut here---------------start------------->8---
diff --git a/contrib/babel/lisp/langs/org-babel-python.el b/contrib/babel/lisp/langs/org-babel-python.el
index 7e938bb..eb37732 100644
--- a/contrib/babel/lisp/langs/org-babel-python.el
+++ b/contrib/babel/lisp/langs/org-babel-python.el
@@ -87,7 +87,7 @@ called by `org-babel-execute-src-block'."
   "Convert an elisp var into a string of python source code
 specifying a var of the same value."
   (if (listp var)
-      (concat "[" (mapconcat #'org-babel-python-var-to-python var ", ") "]")
+      (concat "[" (mapconcat #'org-babel-python-var-to-python (delq 'hline var) ", ") "]")
     (format "%S" var)))
 
 (defun org-babel-python-table-or-string (results)
--8<---------------cut here---------------end--------------->8---


> Thanks,
>
>         Maurizio
>
> #+results: partition-ids-sacred
> | sda1 | 44d8b686-253d-4d84-bc1d-6241256e7a48 |
> | sda5 | 4d061415-21e4-4419-b8a5-3fff37090e5f |
> | sdd3 | 6404fb2a-c30f-475c-b386-89c98d5cb3c6 |
> | sdd5 | 9b072633-a66d-4870-8617-d955c535782f |
> | md0  | a24470a7-1d7e-4938-9f09-ab11cdb78bc3 |
> | sdd1 | dfcb40e1-9e2f-485e-8897-94ee0458c5e7 |
>
> #+tblname: mounts
> | Device | Mount               | type | options  | dump | pass |
> |--------+---------------------+------+----------+------+------|
> | sdd1   | /library            | ext3 | defaults |    0 |    0 |
> | sdd3   | /backup             | ext2 | defaults |    0 |    0 |
> | md0    | /home/mav/workspace | ext3 | defaults |    0 |    0 |
>
> #+source mtab
> #+begin_src python :var mounts=mounts :var ids=partition-ids-sacred :results output
> print mounts
> #+end_src
>
> #+results:
> : Traceback (most recent call last):
> :   File "<stdin>", line 1, in <module>
> : NameError: name 'hline' is not defined
>
>
>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

      reply	other threads:[~2010-03-27  0:14 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-26 21:41 [babel] passing tables to python source blocks Maurizio Vitale
2010-03-27  0:14 ` Dan Davison [this message]

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=87vdciboyu.fsf@stats.ox.ac.uk \
    --to=davison@stats.ox.ac.uk \
    --cc=emacs-orgmode@gnu.org \
    --cc=maurizio.vitale@polymath-solutions.com \
    /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).