emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Insert a line separator in table results
@ 2014-07-16 19:06 Xavier Garrido
  2014-07-16 19:15 ` Thorsten Jolitz
  0 siblings, 1 reply; 6+ messages in thread
From: Xavier Garrido @ 2014-07-16 19:06 UTC (permalink / raw)
  To: emacs-orgmode

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 ?

Thanks for your help,
Xavier

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

* Re: Insert a line separator in table results
  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
  0 siblings, 1 reply; 6+ messages in thread
From: Thorsten Jolitz @ 2014-07-16 19:15 UTC (permalink / raw)
  To: emacs-orgmode

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

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

* Re: Insert a line separator in table results
  2014-07-16 19:15 ` Thorsten Jolitz
@ 2014-07-16 22:13   ` Xavier Garrido
  2014-07-16 22:37     ` Arun Persaud
  2014-07-16 22:54     ` Thorsten Jolitz
  0 siblings, 2 replies; 6+ messages in thread
From: Xavier Garrido @ 2014-07-16 22:13 UTC (permalink / raw)
  To: Thorsten Jolitz, emacs-orgmode

Dear Thorsten,

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

Xavier

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

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

* Re: Insert a line separator in table results
  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
  1 sibling, 1 reply; 6+ messages in thread
From: Arun Persaud @ 2014-07-16 22:37 UTC (permalink / raw)
  To: emacs-orgmode

This works for me.

#+BEGIN_SRC python
    x = [["label 1", "label 2", "label 3"]]
    x.append(None)
    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 |

Arun

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

* Re: Insert a line separator in table results
  2014-07-16 22:13   ` Xavier Garrido
  2014-07-16 22:37     ` Arun Persaud
@ 2014-07-16 22:54     ` Thorsten Jolitz
  1 sibling, 0 replies; 6+ messages in thread
From: Thorsten Jolitz @ 2014-07-16 22:54 UTC (permalink / raw)
  To: emacs-orgmode

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

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

* Re: Insert a line separator in table results
  2014-07-16 22:37     ` Arun Persaud
@ 2014-07-17  6:28       ` Xavier Garrido
  0 siblings, 0 replies; 6+ messages in thread
From: Xavier Garrido @ 2014-07-17  6:28 UTC (permalink / raw)
  To: Arun Persaud, emacs-orgmode

This also works for me.

Thanks for your help,
Xavier

Le 17/07/2014 00:37, Arun Persaud a écrit :
> This works for me.
>
> #+BEGIN_SRC python
>      x = [["label 1", "label 2", "label 3"]]
>      x.append(None)
>      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 |
>
> Arun
>

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

end of thread, other threads:[~2014-07-17  6:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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

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