Continuing indentation

Wolfgang Maier wolfgang.maier at biologie.uni-freiburg.de
Wed Mar 2 16:12:33 EST 2016


On 3/2/2016 21:43, Skip Montanaro wrote:
> Running flake8 over some code which has if statements with multiple
> conditions like this:
>
>      if (some_condition and
>          some_other_condition and
>          some_final_condition):
>          play_bingo()
>
> the tool complains that the indentation of the conditions is the same
> as the next block.  In this particular case, the overall conditions
> are too long to string together on a single line. I tried placing a
> second space after the if keyword:
>
>      if  (some_condition and
>           some_other_condition and
>           some_final_condition):
>          play_bingo()
>
> which solves the matching indentation problem, but creates a multiple
> spaces after keyword problem.  My guess is that adding a space after
> the open paren would provoke a message as well.
>
> I use GNU Emacs as my text editor, and its python mode.  I'm pretty
> happy with everything (been using it in its current state for several
> years).  Aside from manually or configure-ologically suppressing E129,
> is there a better way to break lines I'm missing which will make
> flake8 happy?
>

I don't know about flake8, but pep8 says all these are acceptable though 
the first version (like yours) has the readability problem flake8 
complains about:

# No extra indentation.
if (this_is_one_thing and
     that_is_another_thing):
     do_something()

# Add a comment, which will provide some distinction in editors
# supporting syntax highlighting.
if (this_is_one_thing and
     that_is_another_thing):
     # Since both conditions are true, we can frobnicate.
     do_something()

# Add some extra indentation on the conditional continuation line.
if (this_is_one_thing
         and that_is_another_thing):
     do_something()

Maybe version 2 would make the tool happy?





More information about the Python-list mailing list