7

私はPythonコードをflake8でフォーマットすることに夢中になっています。しかし、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',長すぎます。これをフォーマットする方法はありますか、またはこれを無視する必要がありますか?

4

4 に答える 4

3

別の方法として (次の書き換えは PEP8 に合格します):

[{"NAME": f"django.contrib.auth.password_validation.{name}"}
 for name in [
    "UserAttributeSimilarityValidator",
    "MinimumLengthValidator",
    "CommonPasswordValidator",
    "NumericPasswordValidator"]]

{}".format(name)Python 2では、 ではなくを使用できますf""

于 2017-05-10T04:54:06.157 に答える
2

コーディング スタイルを見ていました。Django docsでこれを見つけました:

PEP 8 の例外は、行の長さに関する規則です。コードが著しく醜く見えたり、読みにくくなったりする場合は、コード行を 79 文字に制限しないでください。これは GitHub コード レビューの幅であるため、最大 119 文字を許可します。

Django の人々でさえそれを避けています (彼らは PEP8 チェックのために flake8 を好んでいます)。.flake8したがって、 orsetup.cfgファイルを作成して次のように入力するとよいでしょう。

[flake8]
max-line-length = 119
于 2017-08-08T17:24:12.317 に答える