From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: [babel] python sessions Date: Sun, 03 Jul 2011 12:13:19 -0600 Message-ID: <87zkkvkzb4.fsf@gmail.com> References: <87r5671jbz.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([140.186.70.92]:46371) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QdRAf-0007Cx-7R for emacs-orgmode@gnu.org; Sun, 03 Jul 2011 14:13:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QdRAc-0004Fv-Gx for emacs-orgmode@gnu.org; Sun, 03 Jul 2011 14:13:28 -0400 Received: from mail-pz0-f41.google.com ([209.85.210.41]:43415) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QdRAc-0004Fl-4H for emacs-orgmode@gnu.org; Sun, 03 Jul 2011 14:13:26 -0400 Received: by pzk4 with SMTP id 4so919779pzk.0 for ; Sun, 03 Jul 2011 11:13:25 -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: Andrea Crotti Cc: Org mode Andrea Crotti writes: > Eric Schulte writes: >> >> This is true, in addition to being a language which is dependent upon >> whitespace characters, python has been tricky due to the many >> independent inferior python modes (python.el, python-mode.el, etc...) >> and to the fact that I personally and not very familiar with the >> language. > > That is indeed a problem (also in cedet for example) and I really would > like to have just one and working well python mode, not a thousand.. > >From what I hear the situation should improve in Emacs24, as there is a ground up re-write which should contain much of the functionality of python-mode.el with the Emacs-amenable license of python.el. > >> >> I've just pushed up a patch which should improve upon the python session >> behavior. After this patch your example returns the following >> results... >> >> #+begin_src python :session :results silent >> def var(x): >> return float(x ** 2) >> #+end_src >> >> #+begin_src python :session :result value >> def var2(x): >> return x ** 2 * var(x) >> >> var2(10) >> #+end_src >> >> #+results: >> : 10000.0 >> > > That example now works like a charm > But here still I get that string, but if I tangle the file I get the > correct result, any idea? > The eoe string will only even appear in session output when there is no other result returned by the code block. I've just pushed up a small change which should fix this situation. The eoe will never appear in tangled code as it is part of the interactive session evaluation. Best -- Eric > > #+begin_src python :session :tangle myset.py :results silent > class MySetList(object): > > def __init__(self): > self._set = [] > > def add(self, el): > if el not in self._set: > self._set.append(el) > > # implementation of other typical set functions > #+end_src > > #+begin_src python :session :tangle myset.py :results silent > class MySetDict(object): > > def __init__(self): > self._dic = {} > > def add(self, el): > if el not in self._dic: > # we only care about the keys > self._dic[el] = None > #+end_src > > #+begin_src python :session :tangle myset.py :results silent > class MySetSet(object): > def __init__(self): > self._set = set() > > def add(self, el): > self._set.add(el) > #+end_src > > > #+begin_src python :session :exports both :tangle myset.py > import timeit > import random > > NUM_ELS = 100 > > > def add_many_to_set(set_type): > m = set_type() > for i in range(NUM_ELS): > m.add(i) > > > def test_impl(set_type): > to_import = """ > from __main__ import add_many_to_set > from __main__ import %s""" > > name = set_type.__name__ > print("testing %s" % name) > return timeit.timeit("add_many_to_set(%s)" % name, > setup=(to_import % name)) > > > test_impl(MySetList), test_impl(MySetDict), test_impl(MySetSet) > > #+end_src -- Eric Schulte http://cs.unm.edu/~eschulte/