From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Eric Schulte" Subject: Re: [BUG][babel] ":result output table" doesn't work for python code blocks Date: Tue, 26 Apr 2011 13:31:26 -0600 Message-ID: <87zkncolm9.fsf@gmail.com> References: <87k4ew2vfu.fsf@are.berkeley.edu> <87oc485jy3.fsf@gmail.com> <87hb9zyf79.fsf@ucl.ac.uk> <877hava3d8.fsf@gmail.com> <87aafksm4y.fsf@ucl.ac.uk> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([140.186.70.92]:36997) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QEnyx-00068R-5Q for emacs-orgmode@gnu.org; Tue, 26 Apr 2011 15:31:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QEnyv-0003HN-VB for emacs-orgmode@gnu.org; Tue, 26 Apr 2011 15:31:35 -0400 Received: from mail-pz0-f41.google.com ([209.85.210.41]:53940) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QEnyv-0003HH-MF for emacs-orgmode@gnu.org; Tue, 26 Apr 2011 15:31:33 -0400 Received: by pzk4 with SMTP id 4so739709pzk.0 for ; Tue, 26 Apr 2011 12:31:32 -0700 (PDT) In-Reply-To: <87aafksm4y.fsf@ucl.ac.uk> (Eric S. Fraga's message of "Wed, 20 Apr 2011 21:28:29 +0100") 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: emacs-orgmode@gnu.org Eric S Fraga writes: > "Eric Schulte" writes: > >> Eric S Fraga writes: >> >>> "Eric Schulte" writes: >>> >>> [...] >>> >>>> That said, I agree that in examples like yours above the returned value >>>> should be a table given that the ":results table" is explicitly stated. >>>> I've just pushed up a patch after which the following is possible. >>> >>> Eric, >>> >>> It would appear that this change you've made is only for python)? Is >>> there any chance of having the same for octave, please? But only if it >>> is easy to do as =:results output raw= with carefully formatted output >>> does the job for me for the moment! >>> >> >> Hi Eric, >> >> I do not have a local copy of octave, so I'm less confident making >> changes to that file, but the attached patch attempts to make the same >> changes in ob-octave which were made in ob-python. >> >> Could you please test this patch for both external and session based >> evaluation and let me know if it works (I'm more hopeful that the >> external evaluation will work as expected than the session >> evaluation). > > Eric, > > thanks for this. > > I haven't tried the session based evaluation but the external one, > unfortunately, doesn't work as I would expect. In the following, I > would expect both source code blocks to give me the same output with the > first, value based, being the correct output. > Hi Eric, Does the matlab/octave `disp' function display tabular data in the same manner as it is written literally in source code? This is part of the issue with the "output table" :results combination, namely what constitutes a table for printed output. In source code the answer is obvious, namely whatever the language's interpreter would read as a literal table, however with printed output there are many possible ways to represent tabular data, but none *is* tabular in the way that source code can *be* tabular. If the printed output is exactly the same as how a table would be written in matlab/octave source code, then does my patched version work? If not, then rather than writing another table parser, perhaps the data could be printed as an Org-mode table, and then the "output raw" :results combination could be used, or the output could be sent through another code block to convert the string to a table. Hope this helps, Best -- Eric > > > #+srcname: valueresult > #+begin_src octave :results value table :cache yes > values = []; > for i=1:15 > values(end+1,:) = [i, i^3]; > endfor > ans = values > #+end_src > > #+results[7a87a711b7814ecf23ec5d3741a5fec3ffff3e44]: valueresult > | 1 | 1 | > | 2 | 8 | > | 3 | 27 | > | 4 | 64 | > | 5 | 125 | > | 6 | 216 | > | 7 | 343 | > | 8 | 512 | > | 9 | 729 | > | 10 | 1000 | > | 11 | 1331 | > | 12 | 1728 | > | 13 | 2197 | > | 14 | 2744 | > | 15 | 3375 | > > > #+srcname: outputresult > #+begin_src octave :results output table :cache yes > values = []; > for i=1:15 > values(end+1,:) = [i, i^3]; > endfor > disp(values) > #+end_src > > #+results[3104573dcf8ec30de1a26aae7051a9e8fce6a92a]: outputresult > | 1 1 | > | 2 8 | > | 3 27 | > | 4 64 | > | 5 125 | > | 6 216 | > | 7 343 | > | 8 512 | > | 9 729 | > | 10 1000 | > | 11 1331 | > | 12 1728 | > | 13 2197 | > | 14 2744 | > | 15 3375 | > > Thanks, > eric -- Eric Schulte http://cs.unm.edu/~eschulte/