From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: [babel] How to set multiple variables with properties Date: Thu, 23 Jun 2011 22:25:36 -0700 Message-ID: <8762nvsslq.fsf@gmail.com> References: <4e00e5ff.634dec0a.10c2.462f@mx.google.com> <87y60vhrci.fsf@gmail.com> <4E0106B4.7090409@christianmoe.com> <87tybij3r6.fsf@gmail.com> <4E0233F4.4000201@christianmoe.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([140.186.70.92]:56472) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QZyzT-00089P-3C for emacs-orgmode@gnu.org; Fri, 24 Jun 2011 01:31:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QZyzR-0002iW-9Y for emacs-orgmode@gnu.org; Fri, 24 Jun 2011 01:31:38 -0400 Received: from mail-pv0-f169.google.com ([74.125.83.169]:56346) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QZyzQ-0002iO-Ja for emacs-orgmode@gnu.org; Fri, 24 Jun 2011 01:31:36 -0400 Received: by pvc12 with SMTP id 12so1870167pvc.0 for ; Thu, 23 Jun 2011 22:31:34 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: mail@christianmoe.com Cc: Orgmode Mailing List Hi Christian, I took a look at these functions, while they do seem to work they don't provide for any inheritance from higher-level subtrees. I think this is a deal-breaker for use resolving header arguments as inheritance is generally more useful than multiple values. Thanks for pointing these out, at some point I do think that it may be worth taking a look at how Org-mode resolves properties generally. Cheers -- Eric Christian Moe writes: > 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 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 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/