emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [babel] passing tables to python source blocks
@ 2010-03-26 21:41 Maurizio Vitale
  2010-03-27  0:14 ` Dan Davison
  0 siblings, 1 reply; 2+ messages in thread
From: Maurizio Vitale @ 2010-03-26 21:41 UTC (permalink / raw)
  To: emacs-orgmode


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?
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

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

* Re: [babel] passing tables to python source blocks
  2010-03-26 21:41 [babel] passing tables to python source blocks Maurizio Vitale
@ 2010-03-27  0:14 ` Dan Davison
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Davison @ 2010-03-27  0:14 UTC (permalink / raw)
  To: maurizio.vitale; +Cc: emacs-orgmode

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

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

end of thread, other threads:[~2010-03-27  0:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-26 21:41 [babel] passing tables to python source blocks Maurizio Vitale
2010-03-27  0:14 ` Dan Davison

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