[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [babel] sbe not working properly
From: |
Christian Moe |
Subject: |
Re: [O] [babel] sbe not working properly |
Date: |
Thu, 11 Apr 2013 21:15:41 +0200 |
User-agent: |
mu4e 0.9.9.5-dev6; emacs 24.3.1 |
Hi,
I cannot replicate Karl's problem. I copied the code examples, and got
the right results on Org 8.0-pre (pulled this morning).
I did have to make one change -- Babel wouldn't recognize the variables
until I passed them with :var rather than in parens after the codeblock
name. (I saw there was some discussion on dropping the latter syntax;
whoa -- has it already happened?) But that much was clear from the error
messages I got, so Karl's problem must be something different.
Yours,
Christian
Darlan Cavalcante Moreira writes:
> I have my own difficulties using sbe and decided to try your example.
>
> I even created the shell babel block below which does the same think as the
> python code
>
> #+NAME: epoch2dayshell(epoch=1)
> #+begin_src sh
> echo `date --d @$epoch -u +"[%F %a %T]"`
> #+end_src
>
> but I got the same result. Actually, I realize a small detail.
>
> In your example, when you evaluated the table formula you got as result the
> 1970 date. However, this does not mean that your python code was
> executed. You got that answer because you have evaluated the python code
> previously with the default argument (equal to 1) and thus you had
>
> #+RESULTS: epoch2day
> : [1970-01-01 Thu 00:00:01]
>
> in your file. If you erase the #+RESULTS and reevaluate the table you will
> get an ERROR. That indicates that sbe is not calling the babel block as I
> (and probably you too) was expecting.
>
> However, looking at sbe's documentation I can't see anything wrong with the
> formula you wrote. I'm still confused on how to correctly use sbe.
>
> --
> Darlan
>
> At Thu, 11 Apr 2013 16:26:12 +0200,
> Karl Voit wrote:
>>
>> Hi!
>>
>> I want to define a babel function named epoch2day which I am able to use in a
>> table to convert UNIX epoch times to Org-mode time stamps:
>>
>> #+NAME: epoch2day(epoch=1)
>> #+BEGIN_SRC python :results output
>> time = epoch
>> import datetime
>> strtime = str(time)
>> datetimestamp = datetime.datetime.utcfromtimestamp(int(strtime[:10]))
>> print datetimestamp.strftime('[%Y-%m-%d %a %H:%M:%S]')
>> #+END_SRC
>>
>> #+RESULTS: epoch2day
>> : [1970-01-01 Thu 00:00:01]
>>
>> ... this works so far. However, in a table I can't "overwrite" the default
>> value with a column value:
>>
>> | epoch | day |
>> |---------------+---------------------------|
>> | 1262675465119 | [1970-01-01 Thu 00:00:01] |
>> #+TBLFM: $2='(sbe epoch2day (epoch $1))
>>
>> ... but $2 should be: [2010-01-05 Tue 07:11:05]
>>
>>
>> On [1] I found another example:
>>
>> #+name: add1(x=1) :results silent
>> #+begin_src python
>> return x + 1
>> #+end_src
>>
>> #+RESULTS: add1
>> : 2
>>
>> | foo | bar | 3 | 2 |
>> #+TBLFM: @1$4='(sbe add1 (x $3))
>>
>> #+CALL: add1(x=2)
>>
>> #+RESULTS: add1(x=2)
>> : 2
>>
>> So this simple example does not work either at my side[2].
>>
>>
>> What is my error? Or did I found a bug?
>>
>> Thanks!
>>
>>
>> 1. http://stackoverflow.com/questions/9595310/org-babel-sbe-syntax
>> 2. Org-mode 1af215bb4668bf3e778175e68fcaf from git
>> --
>> mail|git|SVN|photos|postings|SMS|phonecalls|RSS|CSV|XML to Org-mode:
>> > get Memacs from https://github.com/novoid/Memacs <
>>
>> https://github.com/novoid/extract_pdf_annotations_to_orgmode + more on github
>>
>>