Le lundi 04 février 2019 à 08:11 -0500, John Kitchin a écrit : > The problem may be the name is only two characters long. Try Ahh > instead. That works for me. Indeed. Nice catch ; how did you find this ? Since this doesn't happen with emacs-lisp or Sage, and since nothing in the docs I've read so far suggests anything about the length of a block identifier, I consider this a bug in the Python language support code. What do you think ? Any hint ? Thanks a lot ! --Emmanuel Charpentier > John > > ----------------------------------- > Professor John Kitchin > Doherty Hall A207F > Department of Chemical Engineering > Carnegie Mellon University > Pittsburgh, PA 15213 > 412-268-7803 > @johnkitchin > http://kitchingroup.cheme.cmu.edu > > > > On Mon, Feb 4, 2019 at 7:00 AM Emmanuel Charpentier < > emm.charpentier@free.fr> wrote: > > Seen in `org-mode' version `9.2'. > > > > > > > > Using `noweb' syntax works OK with `emacs-lisp': > > > > > > > > ┌──── > > > > │ #+name: a > > > > │ #+begin_src emacs-lisp > > > > │ (setq L (append L (list i))) > > > > │ #+end_src > > > > │ > > > > │ #+name: b > > > > │ #+begin_src emacs-lisp :noweb yes :exports both > > > > │ ;; Lisp version > > > > │ (setq L nil) > > > > │ (dotimes (i 5) <>) > > > > │ L > > > > │ #+end_src > > > > └──── > > > > > > > > This gives : > > > > > > > > ┌──── > > > > │ (setq L (append L (list i))) > > > > └──── > > > > > > > > ┌──── > > > > │ ;; Lisp version > > > > │ (setq L nil) > > > > │ (dotimes (i 5) ) > > > > │ L > > > > └──── > > > > > > > > The `noweb' syntax also works with `Sage' (a symbolic maths > > oriented > > > > Python derivative): > > > > > > > > ┌──── > > > > │ #+name: Aaarghhh > > > > │ #+begin_src sage > > > > │ L.append(i) > > > > │ #+end_src > > > > │ > > > > │ #+name: Berde > > > > │ #+begin_src sage :noweb yes :exports both > > > > │ ## Python version > > > > │ L=[] > > > > │ for i in range(1,6): > > > > │ <> > > > > │ L > > > > │ #+end_src > > > > └──── > > > > > > > > wich gives : > > > > > > > > ┌──── > > > > │ L.append(i) > > > > └──── > > > > > > > > ┌──── > > > > │ ## Sage version > > > > │ L=[] > > > > │ for i in range(1,6): > > > > │ > > > > │ L > > > > └──── > > > > > > > > But using the same syntax in Python fails miserably: > > > > > > > > ┌──── > > > > │ #+name: Ah > > > > │ #+begin_src python > > > > │ L.append(i) > > > > │ #+end_src > > > > │ > > > > │ #+name: Beee > > > > │ #+begin_src python :noweb yes :exports both > > > > │ ## Python version > > > > │ L=[] > > > > │ for i in range(1,6): > > > > │ <> > > > > │ L > > > > │ #+end_src > > > > └──── > > > > > > > > ┌──── > > > > │ L.append(i) > > > > └──── > > > > > > > > ┌──── > > > > │ ## Python version > > > > │ L=[] > > > > │ for i in range(1,6): > > > > │ <> > > > > │ L > > > > └──── > > > > > > > > ┌──── > > > > │ [] > > > > └──── > > > > > > > > > > > > It *seems* that the "Ah" block is not expanded. > > > > > > > > The code itself should be sound *if* it expanded: > > > > > > > > ┌──── > > > > │ #+name: B0 > > > > │ #+begin_src python :exports both > > > > │ L=[] > > > > │ for i in range(1,6): > > > > │ L.append(i) > > > > │ L > > > > │ #+end_src > > > > └──── > > > > > > > > ┌──── > > > > │ L=[] > > > > │ for i in range(1,6): > > > > │ L.append(i) > > > > │ L > > > > └──── > > > > > > > > ━━━━━━━━━━━━━━━ > > > > 1 2 3 4 5 > > > > ━━━━━━━━━━━━━━━ > > > > > > > > During the compilation of the source of this mail, the following is > > > > printed in the `*Python*' buffer: > > > > > > > > ┌──── > > > > │ >>> L.append(i) > > > > │ >>> > > > > │ >>> open('/tmp/babel-OJSsxf/python-dVESY4', 'w').write(str(_)) > > > > │ >>> > > > > │ >>> > > > > │ >>> 'org_babel_python_eoe' > > > > │ 'org_babel_python_eoe' > > > > │ >>> ## Python version > > > > │ ... L=[] > > > > │ >>> for i in range(1,6): > > > > │ ... <> > > > > │ File "", line 2 > > > > │ <> > > > > │ ^ > > > > │ SyntaxError: invalid syntax > > > > │ >>> > > > > │ >>> L > > > > │ [] > > > > │ >>> > > > > │ >>> open('/tmp/babel-OJSsxf/python-9NR46u', 'w').write(str(_)) > > > > │ >>> > > > > │ >>> > > > > │ >>> 'org_babel_python_eoe' > > > > │ 'org_babel_python_eoe' > > > > │ >>> L=[] > > > > │ >>> for i in range(1,6): > > > > │ ... L.append(i) > > > > │ ... > > > > │ >>> L > > > > │ [1, 2, 3, 4, 5] > > > > │ >>> > > > > │ >>> open('/tmp/babel-OJSsxf/python-fW5gK0', 'w').write(str(_)) > > > > │ >>> > > > > │ >>> > > > > │ >>> 'org_babel_python_eoe' > > > > │ 'org_babel_python_eoe' > > > > │ >>> > > > > └──── > > > > > > > > The source code of this mail is attached. > > > > > > > > -- > > > > Emmanuel Charpentier > >