[英]How to format Django setting file for 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',
},
]
然后我想出了這個:
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',
},
]
但仍然是'NAME':django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
太長了。 有沒有辦法格式化這個還是我應該忽略這個?
如果您痴迷於沒有收到比代碼的實際外觀更多的警告,那么您可以通過在斷點處添加\\
字符來中斷一行 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!!!"
注意:當您要拆分的行位於{}, [] or ()
內時, \\
字符會引發錯誤,因此您可以簡單地執行以下操作:
AUTH_PASSWORD_VALIDATORS = [{
'NAME': 'django.contrib.auth.password_validation.'
'UserAttributeSimilarityValidator'
}, ...
考慮到這並不是那么丑陋......
如果你不想要警告並且你喜歡你的代碼,那么你可以添加:
# nopep8
在您希望免於 pep8 分析的每一行的末尾。
作為替代方案(以下重寫通過 PEP8):
[{"NAME": f"django.contrib.auth.password_validation.{name}"}
for name in [
"UserAttributeSimilarityValidator",
"MinimumLengthValidator",
"CommonPasswordValidator",
"NumericPasswordValidator"]]
在 python 2 中,您可以使用{}".format(name)
而不是f""
。
如果您使用的是 VS 代碼....
1)在您的項目中創建文件夾( .vscode
)。
2)在文件夾( .vscode
)中創建settings.json
文件並粘貼此代碼
{
"team.showWelcomeMessage": false,
"editor.formatOnSave": true,
"python.linting.pycodestyleEnabled": false,
"python.linting.pylintPath": "C:Users/User/AppData/Roaming/Python/Python37/site-packages/pylint",
"python.linting.pylintArgs": [
"--load-plugins",
"pylint_django"
],
"python.linting.pylintEnabled": false,
"python.linting.enabled": true
}
where "python.linting.pycodestyleEnabled": false, (do FALSE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.