* Can you automatically noweb include? @ 2020-08-05 21:21 George Mauer 2020-08-05 22:03 ` Ken Mankoff 2020-08-08 4:18 ` Tom Gillespie 0 siblings, 2 replies; 14+ messages in thread From: George Mauer @ 2020-08-05 21:21 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 646 bytes --] Use case: I'm using ob-racket <https://github.com/togakangaroo/ob-racket> but this would apply just as well to a few other workflows I have with python or js. I would like to write a helper function in a src block and then automatically have access to it in other src blocks further down the document. I don't really want a stateful session (nor does ob-racket support sessions) so I essentially want the equivalent of automatically including it everywhere so I don't have to type it out all the time (and have it screw up syntax coloring/indentation). Is this currently possible? Does anyone have any ideas for how to extend things so it is? [-- Attachment #2: Type: text/html, Size: 765 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-05 21:21 Can you automatically noweb include? George Mauer @ 2020-08-05 22:03 ` Ken Mankoff 2020-08-06 18:12 ` Ken Mankoff 2020-08-08 4:18 ` Tom Gillespie 1 sibling, 1 reply; 14+ messages in thread From: Ken Mankoff @ 2020-08-05 22:03 UTC (permalink / raw) To: gmauer; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 914 bytes --] What about using :pre or :prologue and setting it at the header or document level? Please excuse brevity. Sent from tiny pocket computer with non-haptic-feedback keyboard. On Wed, Aug 5, 2020, 14:22 George Mauer <gmauer@gmail.com> wrote: > Use case: > > I'm using ob-racket <https://github.com/togakangaroo/ob-racket> but this > would apply just as well to a few other workflows I have with python or js. > > I would like to write a helper function in a src block and then > automatically have access to it in other src blocks further down the > document. I don't really want a stateful session (nor does ob-racket > support sessions) so I essentially want the equivalent of automatically > including it everywhere so I don't have to type it out all the time (and > have it screw up syntax coloring/indentation). > > Is this currently possible? Does anyone have any ideas for how to extend > things so it is? > [-- Attachment #2: Type: text/html, Size: 1348 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-05 22:03 ` Ken Mankoff @ 2020-08-06 18:12 ` Ken Mankoff 2020-08-07 15:39 ` William McCoy 0 siblings, 1 reply; 14+ messages in thread From: Ken Mankoff @ 2020-08-06 18:12 UTC (permalink / raw) To: gmauer; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1225 bytes --] Actual example: * Prologue test :PROPERTIES: :header-args:python+: :prologue "import numpy as np; import os" :END: #+BEGIN_SRC python :results output print(np.__version__) #+END_SRC #+RESULTS: : 1.18.4 On Wed, Aug 5, 2020 at 3:03 PM Ken Mankoff <mankoff@gmail.com> wrote: > What about using :pre or :prologue and setting it at the header or > document level? > > Please excuse brevity. Sent from tiny pocket computer with > non-haptic-feedback keyboard. > > On Wed, Aug 5, 2020, 14:22 George Mauer <gmauer@gmail.com> wrote: > >> Use case: >> >> I'm using ob-racket <https://github.com/togakangaroo/ob-racket> but this >> would apply just as well to a few other workflows I have with python or js. >> >> I would like to write a helper function in a src block and then >> automatically have access to it in other src blocks further down the >> document. I don't really want a stateful session (nor does ob-racket >> support sessions) so I essentially want the equivalent of automatically >> including it everywhere so I don't have to type it out all the time (and >> have it screw up syntax coloring/indentation). >> >> Is this currently possible? Does anyone have any ideas for how to extend >> things so it is? >> > [-- Attachment #2: Type: text/html, Size: 2021 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-06 18:12 ` Ken Mankoff @ 2020-08-07 15:39 ` William McCoy 2020-08-07 16:51 ` Berry, Charles via General discussions about Org-mode. 0 siblings, 1 reply; 14+ messages in thread From: William McCoy @ 2020-08-07 15:39 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1888 bytes --] This use of :prologue appeared to me to be very useful. But for some reason when I try it out it does not work for me. I just get a message that the code block produced no output and that 'np' is not defined. Just to check, when I put the import statements directly within my code block it works fine. I am running: Org mode version 9.3.7 (9.3.7-16-g521d7f-elpa Any idea what I'm doing wrong? On 8/6/20 2:12 PM, Ken Mankoff wrote: > Actual example: > > > * Prologue test > :PROPERTIES: > :header-args:python+: :prologue "import numpy as np; import os" > :END: > > #+BEGIN_SRC python :results output > print(np.__version__) > #+END_SRC > > #+RESULTS: > : 1.18.4 > > > > > On Wed, Aug 5, 2020 at 3:03 PM Ken Mankoff <mankoff@gmail.com > <mailto:mankoff@gmail.com>> wrote: > > What about using :pre or :prologue and setting it at the header or > document level? > > Please excuse brevity. Sent from tiny pocket computer with > non-haptic-feedback keyboard. > > On Wed, Aug 5, 2020, 14:22 George Mauer <gmauer@gmail.com > <mailto:gmauer@gmail.com>> wrote: > > Use case: > > I'm using ob-racket > <https://github.com/togakangaroo/ob-racket> but this would > apply just as well to a few other workflows I have with python > or js. > > I would like to write a helper function in a src block and > then automatically have access to it in other src blocks > further down the document. I don't really want a stateful > session (nor does ob-racket support sessions) so I essentially > want the equivalent of automatically including it everywhere > so I don't have to type it out all the time (and have it screw > up syntax coloring/indentation). > > Is this currently possible? Does anyone have any ideas for how > to extend things so it is? > [-- Attachment #2: Type: text/html, Size: 3938 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-07 15:39 ` William McCoy @ 2020-08-07 16:51 ` Berry, Charles via General discussions about Org-mode. 2020-08-07 18:24 ` William McCoy 0 siblings, 1 reply; 14+ messages in thread From: Berry, Charles via General discussions about Org-mode. @ 2020-08-07 16:51 UTC (permalink / raw) To: William McCoy; +Cc: org-mode mailing list > On Aug 7, 2020, at 8:39 AM, William McCoy <wdm8588@gmail.com> wrote: > > This use of :prologue appeared to me to be very useful. But for some reason when I try it out it does not work for me. I just get a message that the code block produced no output and that 'np' is not defined. Just to check, when I put the import statements directly within my code block it works fine. > > I am running: Org mode version 9.3.7 (9.3.7-16-g521d7f-elpa > > Any idea what I'm doing wrong? > > It is sometimes useful to use C-c C-v C-i to see what header args org has detected for a source block. Misspelled words sometimes wreak havoc and invisible characters can cause real pain. Also, it helps to use C-c C-v C-v to to see the expanded code block. When I do this with Kens' ECM, I get import numpy as np; import os print(np.__version__) in the preview buffer. HTH, Chuck > On 8/6/20 2:12 PM, Ken Mankoff wrote: >> Actual example: >> >> >> * Prologue test >> :PROPERTIES: >> :header-args:python+: :prologue "import numpy as np; import os" >> :END: >> >> #+BEGIN_SRC python :results output >> print(np.__version__) >> #+END_SRC >> >> #+RESULTS: >> : 1.18.4 >> >> >> >> >> On Wed, Aug 5, 2020 at 3:03 PM Ken Mankoff <mankoff@gmail.com> wrote: >> What about using :pre or :prologue and setting it at the header or document level? >> >> Please excuse brevity. Sent from tiny pocket computer with non-haptic-feedback keyboard. >> >> On Wed, Aug 5, 2020, 14:22 George Mauer <gmauer@gmail.com> wrote: >> Use case: >> >> I'm using ob-racket but this would apply just as well to a few other workflows I have with python or js. >> >> I would like to write a helper function in a src block and then automatically have access to it in other src blocks further down the document. I don't really want a stateful session (nor does ob-racket support sessions) so I essentially want the equivalent of automatically including it everywhere so I don't have to type it out all the time (and have it screw up syntax coloring/indentation). >> >> Is this currently possible? Does anyone have any ideas for how to extend things so it is? > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-07 16:51 ` Berry, Charles via General discussions about Org-mode. @ 2020-08-07 18:24 ` William McCoy 2020-08-07 21:18 ` Thomas S. Dye 0 siblings, 1 reply; 14+ messages in thread From: William McCoy @ 2020-08-07 18:24 UTC (permalink / raw) To: Berry, Charles; +Cc: org-mode mailing list Chuck, Thanks very much for your response. I didn't know about those options. When I use C-c C-v C-i, I get the following: Lang: python Properties: :header-args nil :header-args:python nil Header Arguments: :cache no :exports code :hlines no :noweb no :results output replace :session none :tangle no And C-c C-v C-v, shows that the import statements in the header do not get expanded into the code block. So I am obviously doing something wrong. There appear to be no typos or misspellings and the org file containing the coded is exactly this: * Test of prologue header :PROPERTIES: :header-args:python+: :prologue "import numpy as np; import os" :END: #+BEGIN_SRC python :results output print(np.__version__) #+END_SRC #+RESULTS: My init file has no org babel header arguments defined. I am using C-c C-v C-b or C-c C-v C-s to evaluate and I get "Code block produced no output." in the mini-buffer. If I use C-c C-c directly on the code block itself I get: Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'np' is not defined Is there something else I need to do to get babel to recognize the header-args? Thanks On 8/7/20 12:51 PM, Berry, Charles wrote: > >> On Aug 7, 2020, at 8:39 AM, William McCoy <wdm8588@gmail.com> wrote: >> >> This use of :prologue appeared to me to be very useful. But for some reason when I try it out it does not work for me. I just get a message that the code block produced no output and that 'np' is not defined. Just to check, when I put the import statements directly within my code block it works fine. >> >> I am running: Org mode version 9.3.7 (9.3.7-16-g521d7f-elpa >> >> Any idea what I'm doing wrong? >> >> > It is sometimes useful to use C-c C-v C-i to see what header args org has detected for a source block. Misspelled words sometimes wreak havoc and invisible characters can cause real pain. > > > Also, it helps to use C-c C-v C-v to to see the expanded code block. When I do this with Kens' ECM, I get > > import numpy as np; import os > print(np.__version__) > > in the preview buffer. > > HTH, > > Chuck > > >> On 8/6/20 2:12 PM, Ken Mankoff wrote: >>> Actual example: >>> >>> >>> * Prologue test >>> :PROPERTIES: >>> :header-args:python+: :prologue "import numpy as np; import os" >>> :END: >>> >>> #+BEGIN_SRC python :results output >>> print(np.__version__) >>> #+END_SRC >>> >>> #+RESULTS: >>> : 1.18.4 >>> >>> >>> >>> >>> On Wed, Aug 5, 2020 at 3:03 PM Ken Mankoff <mankoff@gmail.com> wrote: >>> What about using :pre or :prologue and setting it at the header or document level? >>> >>> Please excuse brevity. Sent from tiny pocket computer with non-haptic-feedback keyboard. >>> >>> On Wed, Aug 5, 2020, 14:22 George Mauer <gmauer@gmail.com> wrote: >>> Use case: >>> >>> I'm using ob-racket but this would apply just as well to a few other workflows I have with python or js. >>> >>> I would like to write a helper function in a src block and then automatically have access to it in other src blocks further down the document. I don't really want a stateful session (nor does ob-racket support sessions) so I essentially want the equivalent of automatically including it everywhere so I don't have to type it out all the time (and have it screw up syntax coloring/indentation). >>> >>> Is this currently possible? Does anyone have any ideas for how to extend things so it is? > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-07 18:24 ` William McCoy @ 2020-08-07 21:18 ` Thomas S. Dye 2020-08-07 21:25 ` Berry, Charles via General discussions about Org-mode. 0 siblings, 1 reply; 14+ messages in thread From: Thomas S. Dye @ 2020-08-07 21:18 UTC (permalink / raw) To: emacs-orgmode; +Cc: Berry, Charles It works here if you remove the blank line between the headline and the PROPERTIES block. William McCoy writes: > Chuck, > > Thanks very much for your response. I didn't know about those > options. When I > use C-c C-v C-i, I get the following: > > Lang: python > Properties: > :header-args nil > :header-args:python nil > Header Arguments: > :cache no > :exports code > :hlines no > :noweb no > :results output replace > :session none > :tangle no > > And C-c C-v C-v, shows that the import statements in the header > do not get > expanded into the code block. > > So I am obviously doing something wrong. There appear to be no > typos or > misspellings and the org file containing the coded is exactly > this: > > * Test of prologue header > > :PROPERTIES: > :header-args:python+: :prologue "import numpy as np; import os" > :END: > > #+BEGIN_SRC python :results output > print(np.__version__) > #+END_SRC > > #+RESULTS: > > > My init file has no org babel header arguments defined. > > I am using C-c C-v C-b or C-c C-v C-s to evaluate and I get > > "Code block produced no output." in the mini-buffer. > > > If I use C-c C-c directly on the code block itself I get: > > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > NameError: name 'np' is not defined > > Is there something else I need to do to get babel to recognize > the header-args? > > Thanks > > > On 8/7/20 12:51 PM, Berry, Charles wrote: >> >>> On Aug 7, 2020, at 8:39 AM, William McCoy <wdm8588@gmail.com> >>> wrote: >>> >>> This use of :prologue appeared to me to be very useful. But >>> for some reason when I try it out it does not work for me. I >>> just get a message that the code block produced no output and >>> that 'np' is not defined. Just to check, when I put the >>> import statements directly within my code block it works fine. >>> >>> I am running: Org mode version 9.3.7 (9.3.7-16-g521d7f-elpa >>> >>> Any idea what I'm doing wrong? >>> >>> >> It is sometimes useful to use C-c C-v C-i to see what header >> args org has detected for a source block. Misspelled words >> sometimes wreak havoc and invisible characters can cause real >> pain. >> >> >> Also, it helps to use C-c C-v C-v to to see the expanded code >> block. When I do this with Kens' ECM, I get >> >> import numpy as np; import os >> print(np.__version__) >> >> in the preview buffer. >> >> HTH, >> >> Chuck >> >> >>> On 8/6/20 2:12 PM, Ken Mankoff wrote: >>>> Actual example: >>>> >>>> >>>> * Prologue test >>>> :PROPERTIES: >>>> :header-args:python+: :prologue "import numpy as np; import >>>> os" >>>> :END: >>>> >>>> #+BEGIN_SRC python :results output >>>> print(np.__version__) >>>> #+END_SRC >>>> >>>> #+RESULTS: >>>> : 1.18.4 >>>> >>>> >>>> >>>> >>>> On Wed, Aug 5, 2020 at 3:03 PM Ken Mankoff >>>> <mankoff@gmail.com> wrote: >>>> What about using :pre or :prologue and setting it at the >>>> header or document level? >>>> >>>> Please excuse brevity. Sent from tiny pocket computer with >>>> non-haptic-feedback keyboard. >>>> >>>> On Wed, Aug 5, 2020, 14:22 George Mauer <gmauer@gmail.com> >>>> wrote: >>>> Use case: >>>> >>>> I'm using ob-racket but this would apply just as well to a >>>> few other workflows I have with python or js. >>>> >>>> I would like to write a helper function in a src block and >>>> then automatically have access to it in other src blocks >>>> further down the document. I don't really want a stateful >>>> session (nor does ob-racket support sessions) so I >>>> essentially want the equivalent of automatically including it >>>> everywhere so I don't have to type it out all the time (and >>>> have it screw up syntax coloring/indentation). >>>> >>>> Is this currently possible? Does anyone have any ideas for >>>> how to extend things so it is? >> -- Thomas S. Dye https://tsdye.online/tsdye ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-07 21:18 ` Thomas S. Dye @ 2020-08-07 21:25 ` Berry, Charles via General discussions about Org-mode. 2020-08-07 22:01 ` William McCoy 0 siblings, 1 reply; 14+ messages in thread From: Berry, Charles via General discussions about Org-mode. @ 2020-08-07 21:25 UTC (permalink / raw) To: Thomas S. Dye; +Cc: org-mode mailing list, William McCoy Good catch. Also it works if you put the property block at the very beginning of the file. This sometimes helps: M-x org-lint RET which in this case reports "Incorrect contents for PROPERTIES drawer" which is a bit cryptic IMO, but does point to any issue with the property. HTH, Chuck > On Aug 7, 2020, at 2:18 PM, Thomas S. Dye <tsd@tsdye.online> wrote: > > It works here if you remove the blank line between the headline and the PROPERTIES block. > > William McCoy writes: > >> Chuck, >> >> Thanks very much for your response. I didn't know about those options. When I >> use C-c C-v C-i, I get the following: >> >> Lang: python >> Properties: >> :header-args nil >> :header-args:python nil >> Header Arguments: >> :cache no >> :exports code >> :hlines no >> :noweb no >> :results output replace >> :session none >> :tangle no >> >> And C-c C-v C-v, shows that the import statements in the header do not get >> expanded into the code block. >> >> So I am obviously doing something wrong. There appear to be no typos or >> misspellings and the org file containing the coded is exactly this: >> >> * Test of prologue header >> >> :PROPERTIES: >> :header-args:python+: :prologue "import numpy as np; import os" >> :END: >> >> #+BEGIN_SRC python :results output >> print(np.__version__) >> #+END_SRC >> >> #+RESULTS: >> >> >> My init file has no org babel header arguments defined. >> >> I am using C-c C-v C-b or C-c C-v C-s to evaluate and I get >> >> "Code block produced no output." in the mini-buffer. >> >> >> If I use C-c C-c directly on the code block itself I get: >> >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> NameError: name 'np' is not defined >> >> Is there something else I need to do to get babel to recognize the header-args? >> >> Thanks >> >> >> On 8/7/20 12:51 PM, Berry, Charles wrote: >>> >>>> On Aug 7, 2020, at 8:39 AM, William McCoy <wdm8588@gmail.com> wrote: >>>> >>>> This use of :prologue appeared to me to be very useful. But for some reason when I try it out it does not work for me. I just get a message that the code block produced no output and that 'np' is not defined. Just to check, when I put the import statements directly within my code block it works fine. >>>> >>>> I am running: Org mode version 9.3.7 (9.3.7-16-g521d7f-elpa >>>> >>>> Any idea what I'm doing wrong? >>>> >>>> >>> It is sometimes useful to use C-c C-v C-i to see what header args org has detected for a source block. Misspelled words sometimes wreak havoc and invisible characters can cause real pain. >>> >>> >>> Also, it helps to use C-c C-v C-v to to see the expanded code block. When I do this with Kens' ECM, I get >>> >>> import numpy as np; import os >>> print(np.__version__) >>> >>> in the preview buffer. >>> >>> HTH, >>> >>> Chuck >>> >>> >>>> On 8/6/20 2:12 PM, Ken Mankoff wrote: >>>>> Actual example: >>>>> >>>>> >>>>> * Prologue test >>>>> :PROPERTIES: >>>>> :header-args:python+: :prologue "import numpy as np; import os" >>>>> :END: >>>>> >>>>> #+BEGIN_SRC python :results output >>>>> print(np.__version__) >>>>> #+END_SRC >>>>> >>>>> #+RESULTS: >>>>> : 1.18.4 >>>>> >>>>> >>>>> >>>>> >>>>> On Wed, Aug 5, 2020 at 3:03 PM Ken Mankoff <mankoff@gmail.com> wrote: >>>>> What about using :pre or :prologue and setting it at the header or document level? >>>>> >>>>> Please excuse brevity. Sent from tiny pocket computer with non-haptic-feedback keyboard. >>>>> >>>>> On Wed, Aug 5, 2020, 14:22 George Mauer <gmauer@gmail.com> wrote: >>>>> Use case: >>>>> >>>>> I'm using ob-racket but this would apply just as well to a few other workflows I have with python or js. >>>>> >>>>> I would like to write a helper function in a src block and then automatically have access to it in other src blocks further down the document. I don't really want a stateful session (nor does ob-racket support sessions) so I essentially want the equivalent of automatically including it everywhere so I don't have to type it out all the time (and have it screw up syntax coloring/indentation). >>>>> >>>>> Is this currently possible? Does anyone have any ideas for how to extend things so it is? >>> > > > -- > Thomas S. Dye > https://tsdye.online/tsdye ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-07 21:25 ` Berry, Charles via General discussions about Org-mode. @ 2020-08-07 22:01 ` William McCoy 2020-08-08 4:15 ` George Mauer 0 siblings, 1 reply; 14+ messages in thread From: William McCoy @ 2020-08-07 22:01 UTC (permalink / raw) To: Berry, Charles, Thomas S. Dye; +Cc: org-mode mailing list Yes, of course, that was it! I ran into that issue a few months ago and then I forgot about again! Thanks both for your help! Bill On 8/7/20 5:25 PM, Berry, Charles wrote: > Good catch. Also it works if you put the property block at the very beginning of the file. > > This sometimes helps: > > M-x org-lint RET > > which in this case reports "Incorrect contents for PROPERTIES drawer" > > which is a bit cryptic IMO, but does point to any issue with the property. > > HTH, > > Chuck > >> On Aug 7, 2020, at 2:18 PM, Thomas S. Dye <tsd@tsdye.online> wrote: >> >> It works here if you remove the blank line between the headline and the PROPERTIES block. >> >> William McCoy writes: >> >>> Chuck, >>> >>> Thanks very much for your response. I didn't know about those options. When I >>> use C-c C-v C-i, I get the following: >>> >>> Lang: python >>> Properties: >>> :header-args nil >>> :header-args:python nil >>> Header Arguments: >>> :cache no >>> :exports code >>> :hlines no >>> :noweb no >>> :results output replace >>> :session none >>> :tangle no >>> >>> And C-c C-v C-v, shows that the import statements in the header do not get >>> expanded into the code block. >>> >>> So I am obviously doing something wrong. There appear to be no typos or >>> misspellings and the org file containing the coded is exactly this: >>> >>> * Test of prologue header >>> >>> :PROPERTIES: >>> :header-args:python+: :prologue "import numpy as np; import os" >>> :END: >>> >>> #+BEGIN_SRC python :results output >>> print(np.__version__) >>> #+END_SRC >>> >>> #+RESULTS: >>> >>> >>> My init file has no org babel header arguments defined. >>> >>> I am using C-c C-v C-b or C-c C-v C-s to evaluate and I get >>> >>> "Code block produced no output." in the mini-buffer. >>> >>> >>> If I use C-c C-c directly on the code block itself I get: >>> >>> Traceback (most recent call last): >>> File "<stdin>", line 1, in <module> >>> NameError: name 'np' is not defined >>> >>> Is there something else I need to do to get babel to recognize the header-args? >>> >>> Thanks >>> >>> >>> On 8/7/20 12:51 PM, Berry, Charles wrote: >>>>> On Aug 7, 2020, at 8:39 AM, William McCoy <wdm8588@gmail.com> wrote: >>>>> >>>>> This use of :prologue appeared to me to be very useful. But for some reason when I try it out it does not work for me. I just get a message that the code block produced no output and that 'np' is not defined. Just to check, when I put the import statements directly within my code block it works fine. >>>>> >>>>> I am running: Org mode version 9.3.7 (9.3.7-16-g521d7f-elpa >>>>> >>>>> Any idea what I'm doing wrong? >>>>> >>>>> >>>> It is sometimes useful to use C-c C-v C-i to see what header args org has detected for a source block. Misspelled words sometimes wreak havoc and invisible characters can cause real pain. >>>> >>>> >>>> Also, it helps to use C-c C-v C-v to to see the expanded code block. When I do this with Kens' ECM, I get >>>> >>>> import numpy as np; import os >>>> print(np.__version__) >>>> >>>> in the preview buffer. >>>> >>>> HTH, >>>> >>>> Chuck >>>> >>>> >>>>> On 8/6/20 2:12 PM, Ken Mankoff wrote: >>>>>> Actual example: >>>>>> >>>>>> >>>>>> * Prologue test >>>>>> :PROPERTIES: >>>>>> :header-args:python+: :prologue "import numpy as np; import os" >>>>>> :END: >>>>>> >>>>>> #+BEGIN_SRC python :results output >>>>>> print(np.__version__) >>>>>> #+END_SRC >>>>>> >>>>>> #+RESULTS: >>>>>> : 1.18.4 >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Wed, Aug 5, 2020 at 3:03 PM Ken Mankoff <mankoff@gmail.com> wrote: >>>>>> What about using :pre or :prologue and setting it at the header or document level? >>>>>> >>>>>> Please excuse brevity. Sent from tiny pocket computer with non-haptic-feedback keyboard. >>>>>> >>>>>> On Wed, Aug 5, 2020, 14:22 George Mauer <gmauer@gmail.com> wrote: >>>>>> Use case: >>>>>> >>>>>> I'm using ob-racket but this would apply just as well to a few other workflows I have with python or js. >>>>>> >>>>>> I would like to write a helper function in a src block and then automatically have access to it in other src blocks further down the document. I don't really want a stateful session (nor does ob-racket support sessions) so I essentially want the equivalent of automatically including it everywhere so I don't have to type it out all the time (and have it screw up syntax coloring/indentation). >>>>>> >>>>>> Is this currently possible? Does anyone have any ideas for how to extend things so it is? >> >> -- >> Thomas S. Dye >> https://tsdye.online/tsdye > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-07 22:01 ` William McCoy @ 2020-08-08 4:15 ` George Mauer 0 siblings, 0 replies; 14+ messages in thread From: George Mauer @ 2020-08-08 4:15 UTC (permalink / raw) To: org-mode mailing list [-- Attachment #1: Type: text/plain, Size: 5140 bytes --] Is there a straightforward way to have a multiline prologue? Or maybe use the body of named block as prologue? On Fri, Aug 7, 2020 at 5:02 PM William McCoy <wdm8588@gmail.com> wrote: > Yes, of course, that was it! I ran into that issue a few months ago and > then I forgot about again! > > Thanks both for your help! > > Bill > > On 8/7/20 5:25 PM, Berry, Charles wrote: > > Good catch. Also it works if you put the property block at the very > beginning of the file. > > > > This sometimes helps: > > > > M-x org-lint RET > > > > which in this case reports "Incorrect contents for PROPERTIES drawer" > > > > which is a bit cryptic IMO, but does point to any issue with the > property. > > > > HTH, > > > > Chuck > > > >> On Aug 7, 2020, at 2:18 PM, Thomas S. Dye <tsd@tsdye.online> wrote: > >> > >> It works here if you remove the blank line between the headline and the > PROPERTIES block. > >> > >> William McCoy writes: > >> > >>> Chuck, > >>> > >>> Thanks very much for your response. I didn't know about those > options. When I > >>> use C-c C-v C-i, I get the following: > >>> > >>> Lang: python > >>> Properties: > >>> :header-args nil > >>> :header-args:python nil > >>> Header Arguments: > >>> :cache no > >>> :exports code > >>> :hlines no > >>> :noweb no > >>> :results output replace > >>> :session none > >>> :tangle no > >>> > >>> And C-c C-v C-v, shows that the import statements in the header do not > get > >>> expanded into the code block. > >>> > >>> So I am obviously doing something wrong. There appear to be no typos > or > >>> misspellings and the org file containing the coded is exactly this: > >>> > >>> * Test of prologue header > >>> > >>> :PROPERTIES: > >>> :header-args:python+: :prologue "import numpy as np; import os" > >>> :END: > >>> > >>> #+BEGIN_SRC python :results output > >>> print(np.__version__) > >>> #+END_SRC > >>> > >>> #+RESULTS: > >>> > >>> > >>> My init file has no org babel header arguments defined. > >>> > >>> I am using C-c C-v C-b or C-c C-v C-s to evaluate and I get > >>> > >>> "Code block produced no output." in the mini-buffer. > >>> > >>> > >>> If I use C-c C-c directly on the code block itself I get: > >>> > >>> Traceback (most recent call last): > >>> File "<stdin>", line 1, in <module> > >>> NameError: name 'np' is not defined > >>> > >>> Is there something else I need to do to get babel to recognize the > header-args? > >>> > >>> Thanks > >>> > >>> > >>> On 8/7/20 12:51 PM, Berry, Charles wrote: > >>>>> On Aug 7, 2020, at 8:39 AM, William McCoy <wdm8588@gmail.com> wrote: > >>>>> > >>>>> This use of :prologue appeared to me to be very useful. But for > some reason when I try it out it does not work for me. I just get a > message that the code block produced no output and that 'np' is not > defined. Just to check, when I put the import statements directly within > my code block it works fine. > >>>>> > >>>>> I am running: Org mode version 9.3.7 (9.3.7-16-g521d7f-elpa > >>>>> > >>>>> Any idea what I'm doing wrong? > >>>>> > >>>>> > >>>> It is sometimes useful to use C-c C-v C-i to see what header args org > has detected for a source block. Misspelled words sometimes wreak havoc and > invisible characters can cause real pain. > >>>> > >>>> > >>>> Also, it helps to use C-c C-v C-v to to see the expanded code block. > When I do this with Kens' ECM, I get > >>>> > >>>> import numpy as np; import os > >>>> print(np.__version__) > >>>> > >>>> in the preview buffer. > >>>> > >>>> HTH, > >>>> > >>>> Chuck > >>>> > >>>> > >>>>> On 8/6/20 2:12 PM, Ken Mankoff wrote: > >>>>>> Actual example: > >>>>>> > >>>>>> > >>>>>> * Prologue test > >>>>>> :PROPERTIES: > >>>>>> :header-args:python+: :prologue "import numpy as np; import os" > >>>>>> :END: > >>>>>> > >>>>>> #+BEGIN_SRC python :results output > >>>>>> print(np.__version__) > >>>>>> #+END_SRC > >>>>>> > >>>>>> #+RESULTS: > >>>>>> : 1.18.4 > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> On Wed, Aug 5, 2020 at 3:03 PM Ken Mankoff <mankoff@gmail.com> > wrote: > >>>>>> What about using :pre or :prologue and setting it at the header or > document level? > >>>>>> > >>>>>> Please excuse brevity. Sent from tiny pocket computer with > non-haptic-feedback keyboard. > >>>>>> > >>>>>> On Wed, Aug 5, 2020, 14:22 George Mauer <gmauer@gmail.com> wrote: > >>>>>> Use case: > >>>>>> > >>>>>> I'm using ob-racket but this would apply just as well to a few > other workflows I have with python or js. > >>>>>> > >>>>>> I would like to write a helper function in a src block and then > automatically have access to it in other src blocks further down the > document. I don't really want a stateful session (nor does ob-racket > support sessions) so I essentially want the equivalent of automatically > including it everywhere so I don't have to type it out all the time (and > have it screw up syntax coloring/indentation). > >>>>>> > >>>>>> Is this currently possible? Does anyone have any ideas for how to > extend things so it is? > >> > >> -- > >> Thomas S. Dye > >> https://tsdye.online/tsdye > > > > > [-- Attachment #2: Type: text/html, Size: 7807 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-05 21:21 Can you automatically noweb include? George Mauer 2020-08-05 22:03 ` Ken Mankoff @ 2020-08-08 4:18 ` Tom Gillespie 2020-08-08 4:20 ` Tom Gillespie 1 sibling, 1 reply; 14+ messages in thread From: Tom Gillespie @ 2020-08-08 4:18 UTC (permalink / raw) To: gmauer; +Cc: emacs-orgmode I don't see a direct answer to the original question in the thread, so here is an example of how I do it taken from https://raw.githubusercontent.com/SciCrunch/sparc-curation/master/docs/developer-guide.org. You can ctrl-f for racket-graph-helper to see the relevant blocks. A reduced version is below. Recall that I use https://github.com/wallyqs/ob-racket. I use this pattern all over the place in my org blocks. Best, Tom * Use the code :cache yes" #+begin_src racket :lang racket/base :noweb yes <<racket-helper>> (helper-function "this should work") #+end_src #+RESULTS: : this should work hello world * Define the helpers #+name: racket-helper #+header: :prologue "#lang racket/base" #+begin_src racket :lang racket/base (define (helper-function arg) (string-append arg " hello world")) #+end_src ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-08 4:18 ` Tom Gillespie @ 2020-08-08 4:20 ` Tom Gillespie 2020-08-08 4:47 ` Tom Gillespie 0 siblings, 1 reply; 14+ messages in thread From: Tom Gillespie @ 2020-08-08 4:20 UTC (permalink / raw) To: gmauer; +Cc: emacs-orgmode Hah, this is what I get for not reading carefully enough. I wonder if it is possible to stick <<racket-helper>> in the prologue and have it expand. On Fri, Aug 7, 2020 at 9:18 PM Tom Gillespie <tgbugs@gmail.com> wrote: > > I don't see a direct answer to the original question in the thread, so > here is an example of how I do it taken from > https://raw.githubusercontent.com/SciCrunch/sparc-curation/master/docs/developer-guide.org. > You can ctrl-f for racket-graph-helper to see the relevant blocks. A > reduced version is below. Recall that I use > https://github.com/wallyqs/ob-racket. I use this pattern all over the > place in my org blocks. Best, > Tom > > * Use the code > :cache yes" > #+begin_src racket :lang racket/base :noweb yes > <<racket-helper>> > (helper-function "this should work") > #+end_src > > #+RESULTS: > : this should work hello world > > > * Define the helpers > #+name: racket-helper > #+header: :prologue "#lang racket/base" > #+begin_src racket :lang racket/base > (define (helper-function arg) > (string-append arg " hello world")) > #+end_src ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-08 4:20 ` Tom Gillespie @ 2020-08-08 4:47 ` Tom Gillespie 2020-08-08 19:42 ` George Mauer 0 siblings, 1 reply; 14+ messages in thread From: Tom Gillespie @ 2020-08-08 4:47 UTC (permalink / raw) To: gmauer; +Cc: emacs-orgmode After a bit of investigation, it seems that wallyqs implementation of ob-racket does not treat/manage :prologue arguments correctly, which is worrying because I would assume that the semantics for how prologue works should not be something that could be accidentally broken by ob-* implementations (but that is a separate issue). More relevant to this thread is that python the prologue works as others have reported, but if you include a noweb reference in the prologue it does not get expanded. It is quite possible that this should be considered a bug since it means that prologues are added only after the main block is expanded. This seems incorrect, and I suspect that it is another bug related to the one fixed in df5a83637518ad9aa586d49884a6271f11afc592 (discussion here https://orgmode.org/list/CA+G3_PNi3uMvBiWgBdKuC3C6VJt1T1j-RKH43LRqYbr+4NS8ZA@mail.gmail.com/). The fact that prologue is not expanded means that you can modify what code is run by putting it in a prologue and org mode will be none-the wiser. The sha1 changes if you set :cache yes, which means that something in the execution code is doing something different than in the block hashing code. Further investigation required. * Use the code :PROPERTIES: :header-args:python: :prologue "<<python-helper>>" :END: #+name: python-helper #+begin_src python asdf = lambda : 'result' #+end_src #+begin_src python :noweb yes return asdf() #+end_src On Fri, Aug 7, 2020 at 9:20 PM Tom Gillespie <tgbugs@gmail.com> wrote: > > Hah, this is what I get for not reading carefully enough. I wonder if > it is possible to stick <<racket-helper>> in the prologue and have it > expand. > > On Fri, Aug 7, 2020 at 9:18 PM Tom Gillespie <tgbugs@gmail.com> wrote: > > > > I don't see a direct answer to the original question in the thread, so > > here is an example of how I do it taken from > > https://raw.githubusercontent.com/SciCrunch/sparc-curation/master/docs/developer-guide.org. > > You can ctrl-f for racket-graph-helper to see the relevant blocks. A > > reduced version is below. Recall that I use > > https://github.com/wallyqs/ob-racket. I use this pattern all over the > > place in my org blocks. Best, > > Tom > > > > * Use the code > > :cache yes" > > #+begin_src racket :lang racket/base :noweb yes > > <<racket-helper>> > > (helper-function "this should work") > > #+end_src > > > > #+RESULTS: > > : this should work hello world > > > > > > * Define the helpers > > #+name: racket-helper > > #+header: :prologue "#lang racket/base" > > #+begin_src racket :lang racket/base > > (define (helper-function arg) > > (string-append arg " hello world")) > > #+end_src ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Can you automatically noweb include? 2020-08-08 4:47 ` Tom Gillespie @ 2020-08-08 19:42 ` George Mauer 0 siblings, 0 replies; 14+ messages in thread From: George Mauer @ 2020-08-08 19:42 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 3337 bytes --] For what its worth, I maintain (well maintain is a big word when I'm also probably the only person to use it) this fork of xchrishawk/ob-racket: https://github.com/togakangaroo/ob-racket It seems to have more features than the wallyqs one supporting :var headers. I can look at how prologue support works in others and add it, but I also am surprised that this is up to the plugin authors *at all*. As you pointed out, that means that it can't possibly support noweb expansion On Fri, Aug 7, 2020 at 11:47 PM Tom Gillespie <tgbugs@gmail.com> wrote: > After a bit of investigation, it seems that wallyqs implementation of > ob-racket does not treat/manage :prologue arguments correctly, which > is worrying because I would assume that the semantics for how prologue > works should not be something that could be accidentally broken by > ob-* implementations (but that is a separate issue). More relevant to > this thread is that python the prologue works as others have reported, > but if you include a noweb reference in the prologue it does not get > expanded. It is quite possible that this should be considered a bug > since it means that prologues are added only after the main block is > expanded. This seems incorrect, and I suspect that it is another bug > related to the one fixed in df5a83637518ad9aa586d49884a6271f11afc592 > (discussion here > > https://orgmode.org/list/CA+G3_PNi3uMvBiWgBdKuC3C6VJt1T1j-RKH43LRqYbr+4NS8ZA@mail.gmail.com/ > ). > The fact that prologue is not expanded means that you can modify what > code is run by putting it in a prologue and org mode will be none-the > wiser. The sha1 changes if you set :cache yes, which means that > something in the execution code is doing something different than in > the block hashing code. Further investigation required. > > * Use the code > :PROPERTIES: > :header-args:python: :prologue "<<python-helper>>" > :END: > > #+name: python-helper > #+begin_src python > asdf = lambda : 'result' > #+end_src > > #+begin_src python :noweb yes > return asdf() > #+end_src > > On Fri, Aug 7, 2020 at 9:20 PM Tom Gillespie <tgbugs@gmail.com> wrote: > > > > Hah, this is what I get for not reading carefully enough. I wonder if > > it is possible to stick <<racket-helper>> in the prologue and have it > > expand. > > > > On Fri, Aug 7, 2020 at 9:18 PM Tom Gillespie <tgbugs@gmail.com> wrote: > > > > > > I don't see a direct answer to the original question in the thread, so > > > here is an example of how I do it taken from > > > > https://raw.githubusercontent.com/SciCrunch/sparc-curation/master/docs/developer-guide.org > . > > > You can ctrl-f for racket-graph-helper to see the relevant blocks. A > > > reduced version is below. Recall that I use > > > https://github.com/wallyqs/ob-racket. I use this pattern all over the > > > place in my org blocks. Best, > > > Tom > > > > > > * Use the code > > > :cache yes" > > > #+begin_src racket :lang racket/base :noweb yes > > > <<racket-helper>> > > > (helper-function "this should work") > > > #+end_src > > > > > > #+RESULTS: > > > : this should work hello world > > > > > > > > > * Define the helpers > > > #+name: racket-helper > > > #+header: :prologue "#lang racket/base" > > > #+begin_src racket :lang racket/base > > > (define (helper-function arg) > > > (string-append arg " hello world")) > > > #+end_src > [-- Attachment #2: Type: text/html, Size: 4745 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2020-08-08 19:43 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-08-05 21:21 Can you automatically noweb include? George Mauer 2020-08-05 22:03 ` Ken Mankoff 2020-08-06 18:12 ` Ken Mankoff 2020-08-07 15:39 ` William McCoy 2020-08-07 16:51 ` Berry, Charles via General discussions about Org-mode. 2020-08-07 18:24 ` William McCoy 2020-08-07 21:18 ` Thomas S. Dye 2020-08-07 21:25 ` Berry, Charles via General discussions about Org-mode. 2020-08-07 22:01 ` William McCoy 2020-08-08 4:15 ` George Mauer 2020-08-08 4:18 ` Tom Gillespie 2020-08-08 4:20 ` Tom Gillespie 2020-08-08 4:47 ` Tom Gillespie 2020-08-08 19:42 ` George Mauer
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).