emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Set or update timestamp after evaluation of code block?
@ 2015-09-21 12:46 Rainer M Krug
  2015-09-21 13:17 ` Eric S Fraga
  0 siblings, 1 reply; 15+ messages in thread
From: Rainer M Krug @ 2015-09-21 12:46 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 758 bytes --]

Hi

I have some code blocks which represent an sequence of
fitting-analysis-plotting. But Sometimes I am loosing track which code
blocks I have evaluated.

Is it possible to set a timestamp (ur update it when it exists already)
when a code block has been evaluated, so that I have e record when it
was updated?

Thanks,

Rainer
-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 454 bytes --]

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-21 12:46 Set or update timestamp after evaluation of code block? Rainer M Krug
@ 2015-09-21 13:17 ` Eric S Fraga
  2015-09-21 13:42   ` Rainer M Krug
  0 siblings, 1 reply; 15+ messages in thread
From: Eric S Fraga @ 2015-09-21 13:17 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

On Monday, 21 Sep 2015 at 14:46, Rainer M Krug wrote:

[...]

> Is it possible to set a timestamp (ur update it when it exists already)
> when a code block has been evaluated, so that I have e record when it
> was updated?

Could you make use of the :post header argument to invoke emacs lisp and
execute org-time-stamp-inactive in some way?
-- 
: Eric S Fraga (0xFFFCF67D), Emacs 25.0.50.2, Org release_8.3.1-234-g8c85c9

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-21 13:17 ` Eric S Fraga
@ 2015-09-21 13:42   ` Rainer M Krug
  2015-09-21 14:09     ` Eric S Fraga
                       ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Rainer M Krug @ 2015-09-21 13:42 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1225 bytes --]

Eric S Fraga <e.fraga@ucl.ac.uk> writes:

> On Monday, 21 Sep 2015 at 14:46, Rainer M Krug wrote:
>
> [...]
>
>> Is it possible to set a timestamp (ur update it when it exists already)
>> when a code block has been evaluated, so that I have e record when it
>> was updated?
>
> Could you make use of the :post header argument to invoke emacs lisp and
> execute org-time-stamp-inactive in some way?

Thanks - sounds possible? But if I just use

,----
| :post (org-time-stamp-inactive)
`----

1) an input is required and
2) the time stamp is inserted before the #+begin_src and makes the block
invalid.

How can I put the time stamp in the line after the #+end_src or possibly
even in the same line, as this does not seem to have an impact on the
source block?

Thanks,

Rainer

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 454 bytes --]

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-21 13:42   ` Rainer M Krug
@ 2015-09-21 14:09     ` Eric S Fraga
  2015-09-21 15:15       ` Rainer M Krug
  2015-09-21 15:10     ` John Kitchin
  2015-09-21 15:37     ` Jorge A. Alfaro-Murillo
  2 siblings, 1 reply; 15+ messages in thread
From: Eric S Fraga @ 2015-09-21 14:09 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

On Monday, 21 Sep 2015 at 15:42, Rainer M Krug wrote:

[...]

> How can I put the time stamp in the line after the #+end_src or possibly
> even in the same line, as this does not seem to have an impact on the
> source block?

Above my pay grade unfortunately ;-)  Sorry.

Hopefully one of the emacs lisp gurus here will be able to help!

-- 
: Eric S Fraga (0xFFFCF67D), Emacs 25.0.50.2, Org release_8.3.1-234-g8c85c9

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-21 13:42   ` Rainer M Krug
  2015-09-21 14:09     ` Eric S Fraga
@ 2015-09-21 15:10     ` John Kitchin
  2015-09-21 18:43       ` Rainer M Krug
  2015-09-21 15:37     ` Jorge A. Alfaro-Murillo
  2 siblings, 1 reply; 15+ messages in thread
From: John Kitchin @ 2015-09-21 15:10 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

Here is one approach:

#+name: update-timestamp
#+BEGIN_SRC emacs-lisp :var data=""
(concat
 "Last run: "
 (format-time-string "[%Y-%m-%d %a %H:%M:%S]" (current-time))
 "\n" data)
#+END_SRC


#+BEGIN_SRC python :post update-timestamp(data=*this*)
print('hello')
#+END_SRC

#+RESULTS:
: Last run: [2015-09-21 Mon 11:09:18]
: hello



Rainer M Krug writes:

> Eric S Fraga <e.fraga@ucl.ac.uk> writes:
>
>> On Monday, 21 Sep 2015 at 14:46, Rainer M Krug wrote:
>>
>> [...]
>>
>>> Is it possible to set a timestamp (ur update it when it exists already)
>>> when a code block has been evaluated, so that I have e record when it
>>> was updated?
>>
>> Could you make use of the :post header argument to invoke emacs lisp and
>> execute org-time-stamp-inactive in some way?
>
> Thanks - sounds possible? But if I just use
>
> ,----
> | :post (org-time-stamp-inactive)
> `----
>
> 1) an input is required and
> 2) the time stamp is inserted before the #+begin_src and makes the block
> invalid.
>
> How can I put the time stamp in the line after the #+end_src or possibly
> even in the same line, as this does not seem to have an impact on the
> source block?
>
> Thanks,
>
> Rainer

--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-21 14:09     ` Eric S Fraga
@ 2015-09-21 15:15       ` Rainer M Krug
  0 siblings, 0 replies; 15+ messages in thread
From: Rainer M Krug @ 2015-09-21 15:15 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 895 bytes --]

Eric S Fraga <e.fraga@ucl.ac.uk> writes:

> On Monday, 21 Sep 2015 at 15:42, Rainer M Krug wrote:
>
> [...]
>
>> How can I put the time stamp in the line after the #+end_src or possibly
>> even in the same line, as this does not seem to have an impact on the
>> source block?
>
> Above my pay grade unfortunately ;-)  Sorry.
>
> Hopefully one of the emacs lisp gurus here will be able to help!

Thanks - and hopefully your pay grade will be upgraded.

Rainer

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 454 bytes --]

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-21 13:42   ` Rainer M Krug
  2015-09-21 14:09     ` Eric S Fraga
  2015-09-21 15:10     ` John Kitchin
@ 2015-09-21 15:37     ` Jorge A. Alfaro-Murillo
  2015-09-21 18:37       ` Rainer M Krug
  2 siblings, 1 reply; 15+ messages in thread
From: Jorge A. Alfaro-Murillo @ 2015-09-21 15:37 UTC (permalink / raw)
  To: emacs-orgmode

Rainer M Krug writes:

> Eric S Fraga <e.fraga@ucl.ac.uk> writes: 
> 
>> On Monday, 21 Sep 2015 at 14:46, Rainer M Krug wrote: 
>> 
>> [...] 
>> 
>>> Is it possible to set a timestamp (ur update it when it exists 
>>> already) when a code block has been evaluated, so that I have 
>>> e record when it was updated? 
>> 
>> Could you make use of the :post header argument to invoke emacs 
>> lisp and execute org-time-stamp-inactive in some way? 
> 
> Thanks - sounds possible? But if I just use 
> 
> ,---- | :post (org-time-stamp-inactive) `---- 
> 
> 1) an input is required and 2) the time stamp is inserted before 
> the #+begin_src and makes the block invalid. 
> 
> How can I put the time stamp in the line after the #+end_src or 
> possibly even in the same line, as this does not seem to have an 
> impact on the source block?

You could use the :epilogue header argument. Since you want after 
the #+end_src this is rather hackish:

:epilogue (save-excursion (re-search-forward "END_SRC" nil nil 2) 
(org-insert-time-stamp (current-time) t t "\nEvaluated: " "\n"))

It does not update the results, but it will show you all the 
results and when they were evaluated.

If you want to keep only one set of results and do not mind having 
the timestamp before the #+BEGIN_SRC, you could use something 
like:

:epilogue (save-excursion (if (re-search-backward "Last evaluated: 
" nil t) (kill-line 1)) (org-insert-time-stamp (current-time) t t 
"Last evaluated: " "\n"))

Best,
-- 
Jorge.

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-21 15:37     ` Jorge A. Alfaro-Murillo
@ 2015-09-21 18:37       ` Rainer M Krug
  0 siblings, 0 replies; 15+ messages in thread
From: Rainer M Krug @ 2015-09-21 18:37 UTC (permalink / raw)
  To: Jorge A. Alfaro-Murillo; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 2209 bytes --]

jorge.alfaro-murillo@yale.edu (Jorge A. Alfaro-Murillo) writes:

> Rainer M Krug writes:
>
>> Eric S Fraga <e.fraga@ucl.ac.uk> writes: 
>>
>>> On Monday, 21 Sep 2015 at 14:46, Rainer M Krug wrote: 
>>>
>>> [...] 
>>>
>>>> Is it possible to set a timestamp (ur update it when it exists
>>>> already) when a code block has been evaluated, so that I have e
>>>> record when it was updated? 
>>>
>>> Could you make use of the :post header argument to invoke emacs
>>> lisp and execute org-time-stamp-inactive in some way? 
>>
>> Thanks - sounds possible? But if I just use 
>>
>> ,---- | :post (org-time-stamp-inactive) `---- 
>>
>> 1) an input is required and 2) the time stamp is inserted before the
>> #+begin_src and makes the block invalid. 
>>
>> How can I put the time stamp in the line after the #+end_src or
>> possibly even in the same line, as this does not seem to have an
>> impact on the source block?
>
> You could use the :epilogue header argument. Since you want after the
> #+end_src this is rather hackish:
>
> :epilogue (save-excursion (re-search-forward "END_SRC" nil nil 2)
> (org-insert-time-stamp (current-time) t t "\nEvaluated: " "\n"))
>
> It does not update the results, but it will show you all the results
> and when they were evaluated.
>
> If you want to keep only one set of results and do not mind having the
> timestamp before the #+BEGIN_SRC, you could use something like:
>
> :epilogue (save-excursion (if (re-search-backward "Last evaluated: "
> nil t) (kill-line 1)) (org-insert-time-stamp (current-time) t t "Last
> evaluated: " "\n"))

The :epilogue won't work, as the source code block is in R and the
epilogue is appended to the code.

But I will look at the elisp code

Thanks,

Rainer
>
> Best,

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 454 bytes --]

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-21 15:10     ` John Kitchin
@ 2015-09-21 18:43       ` Rainer M Krug
  2015-09-21 19:27         ` John Kitchin
  2015-09-21 19:53         ` Grant Rettke
  0 siblings, 2 replies; 15+ messages in thread
From: Rainer M Krug @ 2015-09-21 18:43 UTC (permalink / raw)
  To: John Kitchin; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 2257 bytes --]

John Kitchin <jkitchin@andrew.cmu.edu> writes:

> Here is one approach:
>
> #+name: update-timestamp
> #+BEGIN_SRC emacs-lisp :var data=""
> (concat
>  "Last run: "
>  (format-time-string "[%Y-%m-%d %a %H:%M:%S]" (current-time))
>  "\n" data)
> #+END_SRC
>
>
> #+BEGIN_SRC python :post update-timestamp(data=*this*)
> print('hello')
> #+END_SRC
>
> #+RESULTS:
> : Last run: [2015-09-21 Mon 11:09:18]
> : hello

Thanks John - that looks nice and I like the idea of using
(current-time) and the possibility to format the time string, but this
info will be part of the export - and I only would like tho have the
info in the org file and not in the exported document.


Rainer

>
>
>
> Rainer M Krug writes:
>
>> Eric S Fraga <e.fraga@ucl.ac.uk> writes:
>>
>>> On Monday, 21 Sep 2015 at 14:46, Rainer M Krug wrote:
>>>
>>> [...]
>>>
>>>> Is it possible to set a timestamp (ur update it when it exists already)
>>>> when a code block has been evaluated, so that I have e record when it
>>>> was updated?
>>>
>>> Could you make use of the :post header argument to invoke emacs lisp and
>>> execute org-time-stamp-inactive in some way?
>>
>> Thanks - sounds possible? But if I just use
>>
>> ,----
>> | :post (org-time-stamp-inactive)
>> `----
>>
>> 1) an input is required and
>> 2) the time stamp is inserted before the #+begin_src and makes the block
>> invalid.
>>
>> How can I put the time stamp in the line after the #+end_src or possibly
>> even in the same line, as this does not seem to have an impact on the
>> source block?
>>
>> Thanks,
>>
>> Rainer
>
> --
> Professor John Kitchin
> Doherty Hall A207F
> Department of Chemical Engineering
> Carnegie Mellon University
> Pittsburgh, PA 15213
> 412-268-7803
> @johnkitchin
> http://kitchingroup.cheme.cmu.edu

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 454 bytes --]

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-21 18:43       ` Rainer M Krug
@ 2015-09-21 19:27         ` John Kitchin
  2015-09-22  7:52           ` Rainer M Krug
  2015-09-21 19:53         ` Grant Rettke
  1 sibling, 1 reply; 15+ messages in thread
From: John Kitchin @ 2015-09-21 19:27 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode

so picky ;) Maybe something like this will put that stamp in a comment
that won't export.

#+BEGIN_SRC emacs-lisp
(defun j-add-ts ()
  (save-excursion
    (re-search-forward "#\\+END_SRC")
    (forward-line)
    (beginning-of-line)
    (when (looking-at "# Last run:")
      (kill-line))
    (insert (concat
             "# Last run: "
             (format-time-string "[%Y-%m-%d %a %H:%M:%S]" (current-time))))))


(add-hook 'org-babel-after-execute-hook
          'j-add-ts)

;(remove-hook 'org-babel-after-execute-hook
;         'j-add-ts)
#+END_SRC


Rainer M Krug writes:

> John Kitchin <jkitchin@andrew.cmu.edu> writes:
>
>> Here is one approach:
>>
>> #+name: update-timestamp
>> #+BEGIN_SRC emacs-lisp :var data=""
>> (concat
>>  "Last run: "
>>  (format-time-string "[%Y-%m-%d %a %H:%M:%S]" (current-time))
>>  "\n" data)
>> #+END_SRC
>>
>>
>> #+BEGIN_SRC python :post update-timestamp(data=*this*)
>> print('hello')
>> #+END_SRC
>>
>> #+RESULTS:
>> : Last run: [2015-09-21 Mon 11:09:18]
>> : hello
>
> Thanks John - that looks nice and I like the idea of using
> (current-time) and the possibility to format the time string, but this
> info will be part of the export - and I only would like tho have the
> info in the org file and not in the exported document.
>
>
> Rainer
>
>>
>>
>>
>> Rainer M Krug writes:
>>
>>> Eric S Fraga <e.fraga@ucl.ac.uk> writes:
>>>
>>>> On Monday, 21 Sep 2015 at 14:46, Rainer M Krug wrote:
>>>>
>>>> [...]
>>>>
>>>>> Is it possible to set a timestamp (ur update it when it exists already)
>>>>> when a code block has been evaluated, so that I have e record when it
>>>>> was updated?
>>>>
>>>> Could you make use of the :post header argument to invoke emacs lisp and
>>>> execute org-time-stamp-inactive in some way?
>>>
>>> Thanks - sounds possible? But if I just use
>>>
>>> ,----
>>> | :post (org-time-stamp-inactive)
>>> `----
>>>
>>> 1) an input is required and
>>> 2) the time stamp is inserted before the #+begin_src and makes the block
>>> invalid.
>>>
>>> How can I put the time stamp in the line after the #+end_src or possibly
>>> even in the same line, as this does not seem to have an impact on the
>>> source block?
>>>
>>> Thanks,
>>>
>>> Rainer
>>
>> --
>> Professor John Kitchin
>> Doherty Hall A207F
>> Department of Chemical Engineering
>> Carnegie Mellon University
>> Pittsburgh, PA 15213
>> 412-268-7803
>> @johnkitchin
>> http://kitchingroup.cheme.cmu.edu

--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-21 18:43       ` Rainer M Krug
  2015-09-21 19:27         ` John Kitchin
@ 2015-09-21 19:53         ` Grant Rettke
  2015-09-22  7:56           ` PROPERTIES attached to results blocks - Was: " Rainer M Krug
  1 sibling, 1 reply; 15+ messages in thread
From: Grant Rettke @ 2015-09-21 19:53 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: emacs-orgmode@gnu.org, John Kitchin

Might be nice to have properties attached to result blocks. That is a nice idea.
Grant Rettke
--
gcr@wisdomandwonder.com | http://www.wisdomandwonder.com/
“Wisdom begins in wonder.” --Socrates
“All creativity is an extended form of a joke.” --Kay
((λ (x) (x x)) (λ (x) (x x)))
“Life has become immeasurably better since I have been forced to stop
taking it seriously.” --Thompson


On Mon, Sep 21, 2015 at 1:43 PM, Rainer M Krug <Rainer@krugs.de> wrote:
> John Kitchin <jkitchin@andrew.cmu.edu> writes:
>
>> Here is one approach:
>>
>> #+name: update-timestamp
>> #+BEGIN_SRC emacs-lisp :var data=""
>> (concat
>>  "Last run: "
>>  (format-time-string "[%Y-%m-%d %a %H:%M:%S]" (current-time))
>>  "\n" data)
>> #+END_SRC
>>
>>
>> #+BEGIN_SRC python :post update-timestamp(data=*this*)
>> print('hello')
>> #+END_SRC
>>
>> #+RESULTS:
>> : Last run: [2015-09-21 Mon 11:09:18]
>> : hello
>
> Thanks John - that looks nice and I like the idea of using
> (current-time) and the possibility to format the time string, but this
> info will be part of the export - and I only would like tho have the
> info in the org file and not in the exported document.
>
>
> Rainer
>
>>
>>
>>
>> Rainer M Krug writes:
>>
>>> Eric S Fraga <e.fraga@ucl.ac.uk> writes:
>>>
>>>> On Monday, 21 Sep 2015 at 14:46, Rainer M Krug wrote:
>>>>
>>>> [...]
>>>>
>>>>> Is it possible to set a timestamp (ur update it when it exists already)
>>>>> when a code block has been evaluated, so that I have e record when it
>>>>> was updated?
>>>>
>>>> Could you make use of the :post header argument to invoke emacs lisp and
>>>> execute org-time-stamp-inactive in some way?
>>>
>>> Thanks - sounds possible? But if I just use
>>>
>>> ,----
>>> | :post (org-time-stamp-inactive)
>>> `----
>>>
>>> 1) an input is required and
>>> 2) the time stamp is inserted before the #+begin_src and makes the block
>>> invalid.
>>>
>>> How can I put the time stamp in the line after the #+end_src or possibly
>>> even in the same line, as this does not seem to have an impact on the
>>> source block?
>>>
>>> Thanks,
>>>
>>> Rainer
>>
>> --
>> Professor John Kitchin
>> Doherty Hall A207F
>> Department of Chemical Engineering
>> Carnegie Mellon University
>> Pittsburgh, PA 15213
>> 412-268-7803
>> @johnkitchin
>> http://kitchingroup.cheme.cmu.edu
>
> --
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
>
> Centre of Excellence for Invasion Biology
> Stellenbosch University
> South Africa
>
> Tel :       +33 - (0)9 53 10 27 44
> Cell:       +33 - (0)6 85 62 59 98
> Fax :       +33 - (0)9 58 10 27 44
>
> Fax (D):    +49 - (0)3 21 21 25 22 44
>
> email:      Rainer@krugs.de
>
> Skype:      RMkrug
>
> PGP: 0x0F52F982

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-21 19:27         ` John Kitchin
@ 2015-09-22  7:52           ` Rainer M Krug
  2015-09-22  9:45             ` Rainer M Krug
  0 siblings, 1 reply; 15+ messages in thread
From: Rainer M Krug @ 2015-09-22  7:52 UTC (permalink / raw)
  To: John Kitchin; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 3472 bytes --]

John Kitchin <jkitchin@andrew.cmu.edu> writes:

> so picky ;)

Jup - aren't all org users like that?

> Maybe something like this will put that stamp in a comment
> that won't export.
>
> #+BEGIN_SRC emacs-lisp
> (defun j-add-ts ()
>   (save-excursion
>     (re-search-forward "#\\+END_SRC")
>     (forward-line)
>     (beginning-of-line)
>     (when (looking-at "# Last run:")
>       (kill-line))
>     (insert (concat
>              "# Last run: "
>              (format-time-string "[%Y-%m-%d %a %H:%M:%S]" (current-time))))))
>
>
> (add-hook 'org-babel-after-execute-hook
>           'j-add-ts)
>
> ;(remove-hook 'org-babel-after-execute-hook
> ;         'j-add-ts)
> #+END_SRC

Perfect! I added it to my emacs.org just now and I relly like it.

Thanks a lot,

Rainer

>
>
> Rainer M Krug writes:
>
>> John Kitchin <jkitchin@andrew.cmu.edu> writes:
>>
>>> Here is one approach:
>>>
>>> #+name: update-timestamp
>>> #+BEGIN_SRC emacs-lisp :var data=""
>>> (concat
>>>  "Last run: "
>>>  (format-time-string "[%Y-%m-%d %a %H:%M:%S]" (current-time))
>>>  "\n" data)
>>> #+END_SRC
>>>
>>>
>>> #+BEGIN_SRC python :post update-timestamp(data=*this*)
>>> print('hello')
>>> #+END_SRC
>>>
>>> #+RESULTS:
>>> : Last run: [2015-09-21 Mon 11:09:18]
>>> : hello
>>
>> Thanks John - that looks nice and I like the idea of using
>> (current-time) and the possibility to format the time string, but this
>> info will be part of the export - and I only would like tho have the
>> info in the org file and not in the exported document.
>>
>>
>> Rainer
>>
>>>
>>>
>>>
>>> Rainer M Krug writes:
>>>
>>>> Eric S Fraga <e.fraga@ucl.ac.uk> writes:
>>>>
>>>>> On Monday, 21 Sep 2015 at 14:46, Rainer M Krug wrote:
>>>>>
>>>>> [...]
>>>>>
>>>>>> Is it possible to set a timestamp (ur update it when it exists already)
>>>>>> when a code block has been evaluated, so that I have e record when it
>>>>>> was updated?
>>>>>
>>>>> Could you make use of the :post header argument to invoke emacs lisp and
>>>>> execute org-time-stamp-inactive in some way?
>>>>
>>>> Thanks - sounds possible? But if I just use
>>>>
>>>> ,----
>>>> | :post (org-time-stamp-inactive)
>>>> `----
>>>>
>>>> 1) an input is required and
>>>> 2) the time stamp is inserted before the #+begin_src and makes the block
>>>> invalid.
>>>>
>>>> How can I put the time stamp in the line after the #+end_src or possibly
>>>> even in the same line, as this does not seem to have an impact on the
>>>> source block?
>>>>
>>>> Thanks,
>>>>
>>>> Rainer
>>>
>>> --
>>> Professor John Kitchin
>>> Doherty Hall A207F
>>> Department of Chemical Engineering
>>> Carnegie Mellon University
>>> Pittsburgh, PA 15213
>>> 412-268-7803
>>> @johnkitchin
>>> http://kitchingroup.cheme.cmu.edu
>
> --
> Professor John Kitchin
> Doherty Hall A207F
> Department of Chemical Engineering
> Carnegie Mellon University
> Pittsburgh, PA 15213
> 412-268-7803
> @johnkitchin
> http://kitchingroup.cheme.cmu.edu

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 454 bytes --]

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

* PROPERTIES attached to results blocks - Was: Set or update timestamp after evaluation of code block?
  2015-09-21 19:53         ` Grant Rettke
@ 2015-09-22  7:56           ` Rainer M Krug
  2015-09-22 15:52             ` Charles C. Berry
  0 siblings, 1 reply; 15+ messages in thread
From: Rainer M Krug @ 2015-09-22  7:56 UTC (permalink / raw)
  To: Grant Rettke; +Cc: emacs-orgmode@gnu.org, John Kitchin

[-- Attachment #1: Type: text/plain, Size: 3708 bytes --]

Grant Rettke <gcr@wisdomandwonder.com> writes:

> Might be nice to have properties attached to result blocks. That is a nice idea.

True. These could be used for in the long run many
purposes, like formating for export. If the formating would be defined
in the properties of the result block, it would make it easy to have
different formating for export when using multiple result blocks.

Rainer


> Grant Rettke
> --
> gcr@wisdomandwonder.com | http://www.wisdomandwonder.com/
> “Wisdom begins in wonder.” --Socrates
> “All creativity is an extended form of a joke.” --Kay
> ((λ (x) (x x)) (λ (x) (x x)))
> “Life has become immeasurably better since I have been forced to stop
> taking it seriously.” --Thompson
>
>
> On Mon, Sep 21, 2015 at 1:43 PM, Rainer M Krug <Rainer@krugs.de> wrote:
>> John Kitchin <jkitchin@andrew.cmu.edu> writes:
>>
>>> Here is one approach:
>>>
>>> #+name: update-timestamp
>>> #+BEGIN_SRC emacs-lisp :var data=""
>>> (concat
>>>  "Last run: "
>>>  (format-time-string "[%Y-%m-%d %a %H:%M:%S]" (current-time))
>>>  "\n" data)
>>> #+END_SRC
>>>
>>>
>>> #+BEGIN_SRC python :post update-timestamp(data=*this*)
>>> print('hello')
>>> #+END_SRC
>>>
>>> #+RESULTS:
>>> : Last run: [2015-09-21 Mon 11:09:18]
>>> : hello
>>
>> Thanks John - that looks nice and I like the idea of using
>> (current-time) and the possibility to format the time string, but this
>> info will be part of the export - and I only would like tho have the
>> info in the org file and not in the exported document.
>>
>>
>> Rainer
>>
>>>
>>>
>>>
>>> Rainer M Krug writes:
>>>
>>>> Eric S Fraga <e.fraga@ucl.ac.uk> writes:
>>>>
>>>>> On Monday, 21 Sep 2015 at 14:46, Rainer M Krug wrote:
>>>>>
>>>>> [...]
>>>>>
>>>>>> Is it possible to set a timestamp (ur update it when it exists already)
>>>>>> when a code block has been evaluated, so that I have e record when it
>>>>>> was updated?
>>>>>
>>>>> Could you make use of the :post header argument to invoke emacs lisp and
>>>>> execute org-time-stamp-inactive in some way?
>>>>
>>>> Thanks - sounds possible? But if I just use
>>>>
>>>> ,----
>>>> | :post (org-time-stamp-inactive)
>>>> `----
>>>>
>>>> 1) an input is required and
>>>> 2) the time stamp is inserted before the #+begin_src and makes the block
>>>> invalid.
>>>>
>>>> How can I put the time stamp in the line after the #+end_src or possibly
>>>> even in the same line, as this does not seem to have an impact on the
>>>> source block?
>>>>
>>>> Thanks,
>>>>
>>>> Rainer
>>>
>>> --
>>> Professor John Kitchin
>>> Doherty Hall A207F
>>> Department of Chemical Engineering
>>> Carnegie Mellon University
>>> Pittsburgh, PA 15213
>>> 412-268-7803
>>> @johnkitchin
>>> http://kitchingroup.cheme.cmu.edu
>>
>> --
>> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)
>>
>> Centre of Excellence for Invasion Biology
>> Stellenbosch University
>> South Africa
>>
>> Tel :       +33 - (0)9 53 10 27 44
>> Cell:       +33 - (0)6 85 62 59 98
>> Fax :       +33 - (0)9 58 10 27 44
>>
>> Fax (D):    +49 - (0)3 21 21 25 22 44
>>
>> email:      Rainer@krugs.de
>>
>> Skype:      RMkrug
>>
>> PGP: 0x0F52F982

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 454 bytes --]

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

* Re: Set or update timestamp after evaluation of code block?
  2015-09-22  7:52           ` Rainer M Krug
@ 2015-09-22  9:45             ` Rainer M Krug
  0 siblings, 0 replies; 15+ messages in thread
From: Rainer M Krug @ 2015-09-22  9:45 UTC (permalink / raw)
  To: John Kitchin; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 5143 bytes --]

Rainer M Krug <Rainer@krugs.de> writes:

> John Kitchin <jkitchin@andrew.cmu.edu> writes:
>
>> so picky ;)
>
> Jup - aren't all org users like that?
>
>> Maybe something like this will put that stamp in a comment
>> that won't export.
>>
>> #+BEGIN_SRC emacs-lisp
>> (defun j-add-ts ()
>>   (save-excursion
>>     (re-search-forward "#\\+END_SRC")
>>     (forward-line)
>>     (beginning-of-line)
>>     (when (looking-at "# Last run:")
>>       (kill-line))
>>     (insert (concat
>>              "# Last run: "
>>              (format-time-string "[%Y-%m-%d %a %H:%M:%S]" (current-time))))))
>>
>>
>> (add-hook 'org-babel-after-execute-hook
>>           'j-add-ts)
>>
>> ;(remove-hook 'org-babel-after-execute-hook
>> ;         'j-add-ts)
>> #+END_SRC
>
> Perfect! I added it to my emacs.org just now and I relly like it.

I modified it a bit so that I get the following time stamp before the
source block. Can the fact that I use #+ cause problems? Because I like
the coloring of the LASTRUN line.

Additional question: if I execute the code block from a preceding
e.g. #+NAME: line which belongs to the code block, the line gets
obviously inserted in front of the code block before.

Is there some org wizardry so that I can search the property #+LASTRUN:
which belongs to the code block and replace or insert it?

Or g=can I somehow jump to the beginning of the code block when I am in
a preceding #+ line?

Thanks,

Rainer

--8<---------------cut here---------------start------------->8---
#+LASTRUN: [2015-09-22 Tue 11:37:43]
#+begin_src emacs-lisp 
(defun rmk/org-babel-add-time-stamp-after-execute-before-src-block ()
  (save-excursion
    (re-search-backward "#\\+BEGIN_SRC")
    (forward-line -1)
    (beginning-of-line)
    (when (not (or
                (looking-at "[[:space:]]*$")
                (looking-at "#\\+LASTRUN:")))
      (forward-line 1)
      (newline)
      (forward-line -1))
    (when (looking-at "#\\+LASTRUN:")
      (kill-line))
    (insert (concat
             "#+LASTRUN: "
             (format-time-string "[%Y-%m-%d %a %H:%M:%S]" (current-time))))
))

(add-hook 'org-babel-after-execute-hook
          'rmk/org-babel-add-time-stamp-after-execute-before-src-block)
#+end_src
--8<---------------cut here---------------end--------------->8---

>
> Thanks a lot,
>
> Rainer
>
>>
>>
>> Rainer M Krug writes:
>>
>>> John Kitchin <jkitchin@andrew.cmu.edu> writes:
>>>
>>>> Here is one approach:
>>>>
>>>> #+name: update-timestamp
>>>> #+BEGIN_SRC emacs-lisp :var data=""
>>>> (concat
>>>>  "Last run: "
>>>>  (format-time-string "[%Y-%m-%d %a %H:%M:%S]" (current-time))
>>>>  "\n" data)
>>>> #+END_SRC
>>>>
>>>>
>>>> #+BEGIN_SRC python :post update-timestamp(data=*this*)
>>>> print('hello')
>>>> #+END_SRC
>>>>
>>>> #+RESULTS:
>>>> : Last run: [2015-09-21 Mon 11:09:18]
>>>> : hello
>>>
>>> Thanks John - that looks nice and I like the idea of using
>>> (current-time) and the possibility to format the time string, but this
>>> info will be part of the export - and I only would like tho have the
>>> info in the org file and not in the exported document.
>>>
>>>
>>> Rainer
>>>
>>>>
>>>>
>>>>
>>>> Rainer M Krug writes:
>>>>
>>>>> Eric S Fraga <e.fraga@ucl.ac.uk> writes:
>>>>>
>>>>>> On Monday, 21 Sep 2015 at 14:46, Rainer M Krug wrote:
>>>>>>
>>>>>> [...]
>>>>>>
>>>>>>> Is it possible to set a timestamp (ur update it when it exists already)
>>>>>>> when a code block has been evaluated, so that I have e record when it
>>>>>>> was updated?
>>>>>>
>>>>>> Could you make use of the :post header argument to invoke emacs lisp and
>>>>>> execute org-time-stamp-inactive in some way?
>>>>>
>>>>> Thanks - sounds possible? But if I just use
>>>>>
>>>>> ,----
>>>>> | :post (org-time-stamp-inactive)
>>>>> `----
>>>>>
>>>>> 1) an input is required and
>>>>> 2) the time stamp is inserted before the #+begin_src and makes the block
>>>>> invalid.
>>>>>
>>>>> How can I put the time stamp in the line after the #+end_src or possibly
>>>>> even in the same line, as this does not seem to have an impact on the
>>>>> source block?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Rainer
>>>>
>>>> --
>>>> Professor John Kitchin
>>>> Doherty Hall A207F
>>>> Department of Chemical Engineering
>>>> Carnegie Mellon University
>>>> Pittsburgh, PA 15213
>>>> 412-268-7803
>>>> @johnkitchin
>>>> http://kitchingroup.cheme.cmu.edu
>>
>> --
>> Professor John Kitchin
>> Doherty Hall A207F
>> Department of Chemical Engineering
>> Carnegie Mellon University
>> Pittsburgh, PA 15213
>> 412-268-7803
>> @johnkitchin
>> http://kitchingroup.cheme.cmu.edu

-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer@krugs.de

Skype:      RMkrug

PGP: 0x0F52F982

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 454 bytes --]

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

* Re: PROPERTIES attached to results blocks - Was: Set or update timestamp after evaluation of code block?
  2015-09-22  7:56           ` PROPERTIES attached to results blocks - Was: " Rainer M Krug
@ 2015-09-22 15:52             ` Charles C. Berry
  0 siblings, 0 replies; 15+ messages in thread
From: Charles C. Berry @ 2015-09-22 15:52 UTC (permalink / raw)
  To: Rainer M Krug; +Cc: John Kitchin, emacs-orgmode@gnu.org, Grant Rettke

On Tue, 22 Sep 2015, Rainer M Krug wrote:

> Grant Rettke <gcr@wisdomandwonder.com> writes:
>
>> Might be nice to have properties attached to result blocks. That is a nice idea.
>
> True. These could be used for in the long run many
> purposes, like formating for export. If the formating would be defined
> in the properties of the result block, it would make it easy to have
> different formating for export when using multiple result blocks.
>

This is available through babel as in the `latex' language src blocks.

Add a new babel language - `results', says. Use :wrap or :post to setup 
the `results' src block:

--8<---------------cut here---------------start------------->8---

#+BEGIN_SRC emacs-lisp :wrap "src results :properties abc"
1
#+END_SRC

#+RESULTS:
#+BEGIN_src results :properties abc
1
#+END_src

--8<---------------cut here---------------end--------------->8---

... then define a babel language 'results' along the line of ob-latex.el 
with suitable `org-babel-header-args:results' and you are there.

HTH,

Chuck

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

end of thread, other threads:[~2015-09-22 15:52 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-21 12:46 Set or update timestamp after evaluation of code block? Rainer M Krug
2015-09-21 13:17 ` Eric S Fraga
2015-09-21 13:42   ` Rainer M Krug
2015-09-21 14:09     ` Eric S Fraga
2015-09-21 15:15       ` Rainer M Krug
2015-09-21 15:10     ` John Kitchin
2015-09-21 18:43       ` Rainer M Krug
2015-09-21 19:27         ` John Kitchin
2015-09-22  7:52           ` Rainer M Krug
2015-09-22  9:45             ` Rainer M Krug
2015-09-21 19:53         ` Grant Rettke
2015-09-22  7:56           ` PROPERTIES attached to results blocks - Was: " Rainer M Krug
2015-09-22 15:52             ` Charles C. Berry
2015-09-21 15:37     ` Jorge A. Alfaro-Murillo
2015-09-21 18:37       ` Rainer M Krug

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