[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orgmode] org-babel python/shell or gantt charts with gnuplot from w
From: |
Dan Davison |
Subject: |
Re: [Orgmode] org-babel python/shell or gantt charts with gnuplot from within org-mode |
Date: |
Tue, 13 Apr 2010 20:24:11 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) |
Erik Butz <address@hidden> writes:
> Hi Eric,
>
> thanks for this information, this already brings me one step further.
>
> There is now another issue which I run into, trying to get this to
> work: python lists seem to be a potential problem. In the code there
> are several lists which are constructed by a
>
> # Generate gnuplot lines
> plot_lines = ['plot ' +
> ', \\\n\t'.join((' '.join(['-1',
> 'title "%s"' % t,
> 'with lines',
> 'linecolor %s %s ' %
> (colorprefix, colors[t]),
> 'linewidth 6'])
> for t in tasks))]
>
> which cause the program to fail and not to produce any output when accessed.
>
> I can create lists with append('a') however and use them mostly w/o problems.
>
> Is there any know limitation somewhere in org-babel or am I running
> into some other problem here?
> (in principle this should just be run like in any normal shell, right?)
Hi Erik,
So have I understood this right that you're following Eric's model and
passing an org table into a shell block whch calls python?
I.e. something like
#+begin_src sh :var tasks=tasks
echo "$tasks" | python gantt.py
#+end_src
In that case it should be exactly the same as running the python code in
a shell outside emacs. To debug this, how about capturing the data
that's going into python with
#+begin_src sh :var tasks=tasks
echo "$tasks" > input-data-for-python
#+end_src
and then outside emacs doing the equivalent of
python gantt.py < input-data-for-python
Does that reveal the same problem?
Dan
>
> Again any hints appreciated
>
> Erik
>
> P.S. let me stress that the code works w/o problems from a normal
> shell, since otherwise this sounds more like a python question
>
>
> On Tue, Apr 13, 2010 at 8:51 PM, Eric Schulte <address@hidden> wrote:
>> Erik Butz <address@hidden> writes:
>>
>>> Hi all,
>>>
>>> I have been playing around with org-mode and have been thinking about
>>> the possibility to create gantt charts with org-mode. I did not find
>>> anything in the archives, and todays thread about taskjuggler brought
>>> me back to the subject.
>>>
>>> This is a python script hovering around the web (gantt.py) which
>>> enables gant charts with gnuplot. I played around with this a bit so
>>> as to have it accept ISO timestamps (%Y-%m-%dT%H:%M:%S) and or
>>> durations. Now I am looking for a way to execute this from within
>>> org-mode probably using org-babel
>>>
>>> The (bash) syntax would be something like
>>>
>>> python gantt.py -t "Title" -i input.txt | gnuplot -persist
>>>
>>> I would like to pass an org table to the script instead of the input
>>> file so the equivalent of doing
>>>
>>> cat input | python gantt.py -t "Title" | gnuplot -persist
>>>
>>> The input structure is (e.g.)
>>>
>>> Task 1 2010-4-2T12:00:00 1 validate
>>> Task 2 2010-4-5T12:00:00 5.25 something
>>> Task 3 2010-4-5T12:00:00 2010-4-10T0:00:00 otherthing
>>> Task 4 5.5 yet another thing
>>> which could well be the column mode representation of a file probably.
>>>
>>
>> something like the following in will allow you to pass a table to a
>> series of shell commands
>>
>> #+tblname: tasks
>> | Task 1 | 2010-4-2T12:00:00 | 1 | validate |
>> | Task 2 | 2010-4-5T12:00:00 | 5.25 | something |
>> | Task 3 | 2010-4-5T12:00:00 | 2010-4-10T0:00:00 | otherthing |
>>
>> #+begin_src sh :var tasks=tasks
>> echo "$tasks" |wc
>> #+end_src
>>
>> #+results:
>> : 3 15 130
>>
>> you can also use a gnuplot block to accept the output of gantt.py, and
>> once everything is working it can be packaged up into a library of babel
>> [1] function which could then be called with a short line like.
>>
>> #+call: gantt(tasks=my-task-table)
>>
>> Hope that helps, let me know if you have any more questions. -- Eric
>>
>>>
>>> I am sorry should this be a bit vague.
>>>
>>> Please let me know if I can provide any more information to clarify the
>>> problem
>>>
>>> Cheers and thanks,
>>>
>>> Erik
>>>
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Please use `Reply All' to send replies to the list.
>>> address@hidden
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>
>> Footnotes:
>> [1] http://orgmode.org/worg/org-contrib/babel/library-of-babel.php
>>
>>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode