如何格式化flake8的Django设置文件

mde*_*gis 5 python django pep8 flake8

我有点痴迷于使用flake8格式化我的python代码.但是,我找不到在Django的设置文件中解决E501(行太长x> 79个字符)的好方法.

首先它是这样的(4xE501):

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]
Run Code Online (Sandbox Code Playgroud)

然后我想出了这个:

AUTH_PASSWORD_VALIDATORS = [{
    'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    }, {
    'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    }, {
    'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    }, {
    'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]
Run Code Online (Sandbox Code Playgroud)

但还是'NAME':django.contrib.auth.password_validation.UserAttributeSimilarityValidator',太长了.有没有办法格式化这个或者我应该忽略这个?

Joh*_*fis 5

如果您痴迷于没有收到比代码的实际外观更多的警告,那么您可以通过\在断点处添加一个字符来中断一行 python 代码(不破坏它的连续性):

例子:

# 1
from some_module import some_method, some_other_method, \
                        a_third_method

# 2
s = "A really very long string, which exist to mesh with your pep8" \
    " warning free obsession. Well, not anymore!!!"    
Run Code Online (Sandbox Code Playgroud)

注意:\当您要拆分的行在内部时{}, [] or (), 该字符会引发错误,因此您可以简单地执行以下操作:

AUTH_PASSWORD_VALIDATORS = [{
    'NAME': 'django.contrib.auth.password_validation.'
            'UserAttributeSimilarityValidator'
    }, ...
Run Code Online (Sandbox Code Playgroud)

考虑到这并不是那么丑陋......


如果你不想要警告并且你喜欢你的代码,那么你可以添加:

# nopep8 
Run Code Online (Sandbox Code Playgroud)

在您希望免于 pep8 分析的每一行的末尾。