emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] [babel] passing tables to python source blocks


From: Dan Davison
Subject: Re: [Orgmode] [babel] passing tables to python source blocks
Date: Fri, 26 Mar 2010 20:14:17 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Maurizio Vitale
<address@hidden> 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.
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode




reply via email to

[Prev in Thread] Current Thread [Next in Thread]