* Appending results from babel block @ 2024-01-27 3:19 Ken Mankoff 2024-01-27 20:22 ` Matt 0 siblings, 1 reply; 4+ messages in thread From: Ken Mankoff @ 2024-01-27 3:19 UTC (permalink / raw) To: Org-mode list Hello, I'd like to append results from a babel block, but without the leading ":" that sometimes appears. Is this possible. I'm using v9.7-pre. This works, but has leading colons: #+BEGIN_SRC bash :results append echo $(date) #+END_SRC #+RESULTS: : Fri Jan 26 07:17:00 PM PST 2024 : Fri Jan 26 07:17:01 PM PST 2024 : Fri Jan 26 07:17:02 PM PST 2024 : Fri Jan 26 07:17:04 PM PST 2024 Setting :results append raw prepends - understandably because 'raw' means there is no delimiter, and no way to know where the results end. Weirdly, :results append drawer Appends result #2, but then inserts all results after the first. Is this last behavior a bug? Any way to have true 'append' w/o ":"? Thanks, -k. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Appending results from babel block 2024-01-27 3:19 Appending results from babel block Ken Mankoff @ 2024-01-27 20:22 ` Matt 2024-01-28 0:53 ` Ken Mankoff 0 siblings, 1 reply; 4+ messages in thread From: Matt @ 2024-01-27 20:22 UTC (permalink / raw) To: Ken Mankoff; +Cc: Org-mode list ---- On Sat, 27 Jan 2024 03:20:37 +0100 Ken Mankoff wrote --- > I'd like to append results from a babel block, but without the leading ":" that sometimes appears. Is this possible. I'm using v9.7-pre. AFAIK, the only ways are to use 'raw' or something that wraps the result, like :wrap or 'drawer'. As you observed, using 'raw' will "prepend" the latest output because Org doesn't consider the previous output a result. I'm curious, what broader goal are you trying to achieve? How does the leading ":" stop you? > Weirdly, > > :results append drawer > > Appends result #2, but then inserts all results after the first. I'm not sure what you mean. However, trying it, I see bunches of "results-end" groups. I assume this is what you see, too? #+BEGIN_SRC bash :results append drawer echo "$(date)" #+END_SRC #+RESULTS: :results: Sat Jan 27 09:11:21 PM CET 2024 :end: :results: Sat Jan 27 09:11:21 PM CET 2024 :end: :results: Sat Jan 27 09:11:21 PM CET 2024 :end: > Is this last behavior a bug? That's a good question. Skimming the manual, I didn't see mention of it, although I may have missed it. The behavior I see doesn't match my expectation. I would expect to see: #+RESULTS: :results: Sat Jan 27 09:11:21 PM CET 2024 Sat Jan 27 09:11:21 PM CET 2024 Sat Jan 27 09:11:21 PM CET 2024 :end: -- Matt Trzcinski Emacs Org contributor (ob-shell) Learn more about Org mode at https://orgmode.org Support Org development at https://liberapay.com/org-mode ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Appending results from babel block 2024-01-27 20:22 ` Matt @ 2024-01-28 0:53 ` Ken Mankoff 2024-01-30 12:28 ` [FR] Append wrapped results from babel block (was: Appending results from babel block) Ihor Radchenko 0 siblings, 1 reply; 4+ messages in thread From: Ken Mankoff @ 2024-01-28 0:53 UTC (permalink / raw) To: Matt; +Cc: Org-mode list Hi Matt, On 2024-01-27 at 12:22 -08, Matt <matt@excalamus.com> wrote... > ---- On Sat, 27 Jan 2024 03:20:37 +0100 Ken Mankoff wrote --- >> Weirdly, >> >> :results append drawer >> >> Appends result #2, but then inserts all results after the first. > > I'm not sure what you mean. However, trying it, I see bunches of > "results-end" groups. I assume this is what you see, too? Yes that's what I see in general format. You ran it 3x in on second so I can't very we're seeing the same thing. But the order becomes 1 5 4 3 2 That is, 2 is appended as expected, but then 3 is inserted after 1 but before 2, 4 is after 1 but before 3, etc. > I would expect to see: Again, all your strings appear the same so I can' verify order. I don't mind multiple :results: :end: drawers, I just want the order to be 1 2 3 4 5 > I'm curious, what broader goal are you trying to achieve? How does the > leading ":" stop you? I have a beancount (plain text accounting) file that is an Org file. Beancount parsing of that file ignores lines that start with "*" or "#", so I can organize finances by heading. The beancount parser fails on lines that begin with ":" Under a given set of headings, e.g., * Finances ** Assets *** Bank Foo **** Checking I parse the bank data (code defined elsewhere via library-of-babel) and convert to Beancount syntax with: #+CALL: bank2bc() I'd like to evaluate (C-c C-c) that CALL when I get a new statement each month, and have results appended, not prepended. For accounts with a lot of transactions, I add a new heading, and then this issue goes away. ***** 2024-01 But for accounts with few transactions, I'd like to break it by year not month, and have transactions appear in chronological order. -k. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [FR] Append wrapped results from babel block (was: Appending results from babel block) 2024-01-28 0:53 ` Ken Mankoff @ 2024-01-30 12:28 ` Ihor Radchenko 0 siblings, 0 replies; 4+ messages in thread From: Ihor Radchenko @ 2024-01-30 12:28 UTC (permalink / raw) To: Ken Mankoff; +Cc: Matt, Org-mode list Ken Mankoff <mankoff@gmail.com> writes: >>> Weirdly, >>> >>> :results append drawer >>> >>> Appends result #2, but then inserts all results after the first. >> >> I'm not sure what you mean. However, trying it, I see bunches of >> "results-end" groups. I assume this is what you see, too? > > Yes that's what I see in general format. You ran it 3x in on second so I can't very we're seeing the same thing. But the order becomes > > 1 > 5 > 4 > 3 > 2 > > That is, 2 is appended as expected, but then 3 is inserted after 1 but before 2, 4 is after 1 but before 3, etc. This is expected, because Org mode has no way to know which drawers are related to results and which are not. Let me illustrate with an example: #+begin_src ... :results append drawer ... #+end_src :drawer: I have nothing to do with the above src block :end: When you evaluate the code block, Org mode searches for #+RESULTS: keyword to mark the results. If there is none, it adds it: #+begin_src ... :results append drawer ... #+end_src #+RESULTS: :drawer: 1 :end: :drawer: I have nothing to do with the above src block :end: Now, when you ask Org mode to append to result, it will find the drawer with #+results: keyword and insert the new result _after_: #+begin_src ... :results append drawer ... #+end_src #+RESULTS: :drawer: 1 :end: :drawer: 2 :end: :drawer: I have nothing to do with the above src block :end: If we now execute the source code block again, Org mode will have no idea that the "2" drawer has anything to do with results of evaluation, because it has no :RESULTS: keyword. Only the first drawer is considered. Hence, Org mode appends the result after "1" again: #+begin_src ... :results append drawer ... #+end_src #+RESULTS: :drawer: 1 :end: :drawer: 3 :end: :drawer: 2 :end: :drawer: I have nothing to do with the above src block :end: That's how the sequence your observe is constructed. When you do not use :results drawer, it happens so that subsequent : 1 : 2 are not creating two separate syntax objects, but are merged into a single fixed-width markup. So, appending works just fine. ---- Now, indeed, the above situation with drawers (and :wrap in general) is confusing. What we might do is modify `org-babel-insert-result' so that it unwraps and re-wraps the existing result when it has exactly the same wrap style. That might be a nice new feature to have. Patches welcome! -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-01-30 12:26 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-01-27 3:19 Appending results from babel block Ken Mankoff 2024-01-27 20:22 ` Matt 2024-01-28 0:53 ` Ken Mankoff 2024-01-30 12:28 ` [FR] Append wrapped results from babel block (was: Appending results from babel block) Ihor Radchenko
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).