emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Thorsten Jolitz <tjolitz@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: Insert a line separator in table results
Date: Thu, 17 Jul 2014 00:54:25 +0200	[thread overview]
Message-ID: <8761iwc3tq.fsf@gmail.com> (raw)
In-Reply-To: 53C6F913.90307@gmail.com

Xavier Garrido <xavier.garrido@gmail.com> writes:

Hi Xavier,

> I would like to be able to do it with =python=... Maybe it is only
> possible with =emacs-lisp= as you suggest.

I don't know python and cannot try it out here either ... but it should
be exactly the same thing:

build and return a list that consists of lists (each table row one list)
and 'hline symbols (each hline one separator line). Does python have
lists and symbols? The latter probably not...

This could be your strategy:
1. build and return a string in (named) python src-block that contains
   a 'table-list' (rows and hlines)
2. use that python-src-block as var for and elisp src-block:
   #+header: :var lst=myPythonBlock
3. read-from-string that list in emacs-lisp
   (read-from-string lst)
4. return the car from the result in source-block

#+name: myPythonBlock
#+begin_src emacs-lisp   # should be python
 (concat "((1 2 3) hline (4 5 6)"
         " (a b c) hline (e f g))")
#+end_src

#+results: myPythonBlock
: ((1 2 3) hline (4 5 6) (a b c) hline (e f g))

#+header: :var lst=myPythonblock
#+begin_src emacs-lisp :results table
 (car (read-from-string lst))
#+end_src

#+results:
| 1 | 2 | 3 |
|---+---+---|
| 4 | 5 | 6 |
| a | b | c |
|---+---+---|
| e | f | g |


but maybe a python programmer can tell you how to do it directly from
python.

> Le 16/07/2014 21:15, Thorsten Jolitz a écrit :
>> Xavier Garrido <xavier.garrido@gmail.com> writes:
>>
>>> Dear orgers,
>>>
>>> I would like to programmatically insert a line separator when generating
>>> a table result. Below is a minimal working example with =python=
>>> src block
>>>
>>> #+BEGIN_SRC python
>>>     x = [("label 1", "label 2", "label 3"), ("-", "-", "-")]
>>>     x.append((4, 5, 6))
>>>     x.append((7, 8, 9))
>>>     return (x)
>>> #+END_SRC
>>>
>>> #+RESULTS:
>>> | label 1 | label 2 | label 3 |
>>> |       - |       - |       - |
>>> |       4 |       5 |       6 |
>>> |       7 |       8 |       9 |
>>>
>>> Is there any possibility to interpret dash as line separator ?
>>
>> #+begin_src emacs-lisp :results table
>>   (list '(1 2 3) 'hline '(a b c) '(d e f) 'hline '(4 5 6))
>> #+end_src
>>
>> #+results:
>> | 1 | 2 | 3 |
>> |---+---+---|
>> | a | b | c |
>> | d | e | f |
>> |---+---+---|
>> | 4 | 5 | 6 |

-- 
cheers,
Thorsten

      parent reply	other threads:[~2014-07-16 22:54 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-16 19:06 Insert a line separator in table results Xavier Garrido
2014-07-16 19:15 ` Thorsten Jolitz
2014-07-16 22:13   ` Xavier Garrido
2014-07-16 22:37     ` Arun Persaud
2014-07-17  6:28       ` Xavier Garrido
2014-07-16 22:54     ` Thorsten Jolitz [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=8761iwc3tq.fsf@gmail.com \
    --to=tjolitz@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).