Andrea Crotti <andrea.crott...@gmail.com> writes: > Eric Schulte <schulte.e...@gmail.com> 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/