I think that a solution more integrated with the rest of Org-mode's property handling would be preferable. That is to say, there should be a way to collect multiple value for a property in Org-mode, and Babel should simply make use of the more general facility.
This doesn't exist yet, but I'd rather wait for the general Org solution than push through a temporary Babel-specific solution. Cheers -- Eric Darlan Cavalcante Moreira <darc...@gmail.com> writes: > One of the things I tried (that didn't work, otherwise I would not have > sent any e-mail) was > :PROPERTY: > :var: variable1="value1" :var variable2="value2" > :END: > > I thought that maybe babel would just ask org what is the value of :var:, > put ":var" before it, and include this in the block header. Therefore I > would get the effect of adding > ":var variable1="value1" :var variable2="value2"" > in the block header and it could work. > > However, even if this method had worked It would not be flexible. One of > the nice things about properties is inheritance. I would like to define > "general variables" as properties in level-1 headings and define more > specific variables in the sub-headings as necessary. However, if babel > always use :var: as the property then defining a variable in a subheading > will overwrite the upper level variable. > > The best option in my use-case-scenario would be some name scheme to > identify variable definitions for org-babel. For instance > :PROPERTY: > :ob-someVariable: "some string maybe with\nline breaks" > :ob-someOtherVariable: 123456 > :END: > would make the variables "someVariable" and "someOtherVariable" known to > org-babel. > > -- > Darlan Cavalcante > > At Wed, 22 Jun 2011 20:27:00 +0200, > Christian Moe <m...@christianmoe.com> wrote: >> >> Hi again, >> >> I was referring to these functions: >> - org-entry-put-multivalued-property >> - org-entry-get-multivalued-property >> - org-entry-add-to-multivalued-property >> - org-entry-remove-from-multivalued-property >> - org-entry-member-in-multivalued-property >> described here: >> http://orgmode.org/manual/Using-the-property-API.html >> >> I've found a few discussions: >> - http://comments.gmane.org/gmane.emacs.orgmode/33457 >> - http://lists.gnu.org/archive/html/emacs-orgmode/2010-02/msg00251.html >> >> I don't have anything working with them, as such,[1] and I was curious >> if anyone did. They don't currently seem to be integrated into >> completion, search functions, Babel, and so on, which would limit >> their usefulness (though searching can be done with regexps). And I >> think implementing wider support for them would run into a problem >> with distinguishing between properties that are meant to be >> multivalued, or and properties that just contain a single value which >> happens to contain spaces. >> >> But handling multiple var=value expressions in a :var: property for >> Babel, as Darlan asked about, might perhaps be doable...? Stuff might >> break, though. >> >> Yours, >> Christian >> >> >> [1] I do have a small research database with some "multivalued" >> properties in it. For queries, I use your org-collector and regular >> expression matching against properties with multiple values. The >> multivalued-properties functions didn't really come into it, except >> that knowing they were there made me go ahead and put multiple values >> in one property. (As it turned out, that wasn't a very good design >> choice.) >> >> On 6/21/11 11:03 PM, Eric Schulte wrote: >> > Hi Christian, >> > >> > That's the first I've heard of that variable? If you do get something >> > working with multivalued properties please do share. >> > >> > Cheers -- Eric >> > >> > Christian Moe<m...@christianmoe.com> writes: >> > >> >> Hi, Eric, >> >> >> >> Just curious: What about the org-entry--multivalued-property functions >> >> mentioned in "Using the properties API"? >> >> >> >> Is anybody using multivalued properties for anything? >> >> >> >> Yours, >> >> Christian >> >> >> >> >> >> On 6/21/11 10:17 PM, Eric Schulte wrote: >> >>> Unfortunately org-mode properties only allow a single entry for any >> >>> given key, so you can only specify one variable using properties. >> >>> >> >>> However the following workaround does exist. >> >>> >> >>> *** alternative >> >>> :PROPERTIES: >> >>> :var: vars=variables >> >>> :END: >> >>> >> >>> #+tblname: variables >> >>> | var1 | 1 | >> >>> | var2 | 2 | >> >>> >> >>> #+begin_src python >> >>> print vars[0][1] >> >>> print vars[1][1] >> >>> #+end_src >> >>> >> >>> Best -- Eric >> >>> >> >>> Darlan Cavalcante Moreira<darc...@gmail.com> writes: >> >>> >> >>>> I'm using org-babel to automate a few tasks and I'd like to define a few >> >>>> variables that are common to several code blocks as sub-tree properties. >> >>>> >> >>>> It works when I have only one variable, where I can use >> >>>> * Heading >> >>>> :PROPERTY: >> >>>> :var: variable1="value1" >> >>>> :END: >> >>>> #+begin_src python :results output >> >>>> print variable1 >> >>>> #+end_src >> >>>> >> >>>> #+results: >> >>>> : value1 >> >>>> >> >>>> Is it possible to set multiples variables in this way? >> >>>> I tried things like >> >>>> :PROPERTY: >> >>>> :var: variable1="value1" variable2="value2" >> >>>> :END: >> >>>> >> >>>> :PROPERTY: >> >>>> :var: variable1="value1",variable2="value2" >> >>>> :END: >> >>>> >> >>>> :PROPERTY: >> >>>> :variable1: "value1" >> >>>> :variable2: "value2" >> >>>> :END: >> >>>> but none of them worked. >> >>>> >> >>>> >> >>>> -- >> >>>> Darlan Cavalcante >> >>>> >> >>> >> >> >> > >> >> -- Eric Schulte http://cs.unm.edu/~eschulte/