Search code examples
pythonsublimetext2pep8

What is PEP8's E128: continuation line under-indented for visual indent?


Just opened a file with Sublime Text (with Sublime Linter) and noticed a PEP8 formatting error that I'd never seen before. Here's the text:

urlpatterns = patterns('',
    url(r'^$', listing, name='investment-listing'),
)

It's flagging the second argument, the line that starts url(...)

I was about to disable this check in ST2 but I'd like to know what I'm doing wrong before I ignore it. You never know, if it seems important I might even change my ways :)


Solution

  • PEP-8 recommends you indent lines to the opening parentheses if you put anything on the first line, so it should either be indenting to the opening bracket:

    urlpatterns = patterns('',
                           url(r'^$', listing, name='investment-listing'))
    

    or not putting any arguments on the starting line, then indenting to a uniform level:

    urlpatterns = patterns(
        '',
        url(r'^$', listing, name='investment-listing'),
    )
    
    urlpatterns = patterns(
        '', url(r'^$', listing, name='investment-listing'))
    

    I suggest taking a read through PEP-8 - you can skim through a lot of it, and it's pretty easy to understand, unlike some of the more technical PEPs.