emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Bug: Tangling python code results in mixed tabs and spaces, incomaptible with python3 [9.1.4 (9.1.4-dist @ /home/ehere/emacs-scripts/org-9.1.4/lisp/)]
@ 2017-12-20 18:24 Edmund Christian Herenz
  2017-12-21 13:56 ` Nicolas Goaziou
  0 siblings, 1 reply; 2+ messages in thread
From: Edmund Christian Herenz @ 2017-12-20 18:24 UTC (permalink / raw)
  To: emacs-orgmode


The following python code uses only whitespaces for the different
indentdation levels:

a_list = ['elem1',
          'elem2',
          'elem3']

for elem in a_list:
    print(elem)
    for char in elem:
        print char

I enter this code into a SRC block with

#+BEGIN_SRC python :tangle blank_test.py

#+END_SRC

by pressing C-' inside the block (which opens the editing buffer
python-mode).  Then I press C-' again, after which I tangle the code
to blank_test.py by pressing C-u C-c C-v C-t.  The resulting file
blank_test.py will contain a mix of tabs and spaces for the different
intendation levels.  (I checked this with whitespace.el).

Above behaviour is a bug, since Python3 forbids mixing of spaces and
tabs. (Python2 is more relaxed about mixing of tabs and spaces). Thus,
the above code, syntactical correctly entered into an OrgSrc buffer,
will result in code that can not be run in python3 when tangled from
an org-mode file.

Emacs  : GNU Emacs 24.4.1 (x86_64-pc-linux-gnu, GTK+ Version 3.14.5)
 of 2017-09-12 on hullmann, modified by Debian
Package: Org mode version 9.1.4 (9.1.4-dist @ /home/ehere/emacs-scripts/org-9.1.4/lisp/)

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Bug: Tangling python code results in mixed tabs and spaces, incomaptible with python3 [9.1.4 (9.1.4-dist @ /home/ehere/emacs-scripts/org-9.1.4/lisp/)]
  2017-12-20 18:24 Bug: Tangling python code results in mixed tabs and spaces, incomaptible with python3 [9.1.4 (9.1.4-dist @ /home/ehere/emacs-scripts/org-9.1.4/lisp/)] Edmund Christian Herenz
@ 2017-12-21 13:56 ` Nicolas Goaziou
  0 siblings, 0 replies; 2+ messages in thread
From: Nicolas Goaziou @ 2017-12-21 13:56 UTC (permalink / raw)
  To: Edmund Christian Herenz; +Cc: emacs-orgmode

Hello,

Edmund Christian Herenz <christian.herenz@astro.su.se> writes:

> The following python code uses only whitespaces for the different
> indentdation levels:
>
> a_list = ['elem1',
>           'elem2',
>           'elem3']
>
> for elem in a_list:
>     print(elem)
>     for char in elem:
>         print char
>
> I enter this code into a SRC block with
>
> #+BEGIN_SRC python :tangle blank_test.py
>
> #+END_SRC
>
> by pressing C-' inside the block (which opens the editing buffer
> python-mode).  Then I press C-' again, after which I tangle the code
> to blank_test.py by pressing C-u C-c C-v C-t.  The resulting file
> blank_test.py will contain a mix of tabs and spaces for the different
> intendation levels.  (I checked this with whitespace.el).
>
> Above behaviour is a bug, since Python3 forbids mixing of spaces and
> tabs. (Python2 is more relaxed about mixing of tabs and spaces). Thus,
> the above code, syntactical correctly entered into an OrgSrc buffer,
> will result in code that can not be run in python3 when tangled from
> an org-mode file.

Have you tried "-i" switch for the block, i.e.,

  #+BEGIN_SRC python -i :tangle blank_test.py


Regards, 

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-12-21 13:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-20 18:24 Bug: Tangling python code results in mixed tabs and spaces, incomaptible with python3 [9.1.4 (9.1.4-dist @ /home/ehere/emacs-scripts/org-9.1.4/lisp/)] Edmund Christian Herenz
2017-12-21 13:56 ` Nicolas Goaziou

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).