Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Enforce "spaces" or "tabs" only in python files?

In Python, is there a mean to enforce the use of spaces or tabs indentation with a per file basis ?

Well, perhaps "enforce" is too strong, more like a "recommendation".

I keep receiving patch files with mixed indentation and this is annoying... (to say the least) Python itself can tell when there is a problem, but I am searching something to do that at the editor level, like it exists for the charset.

Edit : Ok, my question wasn't clear, I am asking this because I keep receiving corrections and patches in any mix of tab/space you can imagine. I am using Mercurial as a DVCS, perhaps something exists at this level ?

like image 976
edomaur Avatar asked Dec 03 '22 05:12

edomaur


1 Answers

Tim Peters has written a nifty script called reindent.py which converts .py files to use 4-space indents and no tabs. It is available here, but check your distribution first -- it may have come bundled in an Examples or Tools directory. (On the latest LTS Ubuntu, it is provided by the python2.7-examples package.)

If you can set up a Mercurial hook you should be able to run all files through reindent.py.

By the way, if you are using unix, then your system may also have the expand (and unexpand) command, which convert all tabs to spaces (and spaces to tabs). However, in this case, I think reindent.py is the right tool.

like image 68
unutbu Avatar answered Dec 18 '22 10:12

unutbu