前回の記事ではpythonコーディング規約のサンプルを紹介しました。
さらに一歩踏み込んで、このpythonコーディング規約を満たすような .flake8のファイルのサンプルを作成してみました。
これを使用することで、自然とpythonコーディング規約に則ったコードがかけるはずです。
[flake8]
# 最大行長を100文字に設定
max-line-length = 100
# インデントは4スペース
indent-size = 4
# 無視するエラー/警告
ignore =
# E203: ':'の前後のスペースに関するエラー(black形式と競合するため)
E203,
# W503: 演算子の前での改行(black形式と競合するため)
W503,
# E266: コメントの#が多すぎる警告(ドキュメンテーションブロックで使用可能にするため)
E266
# 複雑度のしきい値を設定(McCabe複雑度)
max-complexity = 10
# 除外するファイルやディレクトリ
exclude =
.git,
__pycache__,
build,
dist,
venv,
.venv,
.tox,
.mypy_cache,
.pytest_cache,
.vscode,
.idea
# インポートの順序をチェック
application-import-names = your_project_name
import-order-style = google
# docstringのチェックを有効化
docstring-convention = google
# 型アノテーションのチェックを有効化
mypy-init-return = True
# 未使用のインポートをチェック
per-file-ignores =
__init__.py: F401
# インラインコメントの最小文字数
inline-quotes = single
# 変数名の最小文字数(ループ変数を除く)
variable-rgx = [a-z_][a-z0-9_]{1,30}$
# 関数名の形式
function-rgx = [a-z_][a-z0-9_]{2,30}$
# クラス名の形式
class-rgx = [A-Z_][a-zA-Z0-9]+$
# 定数名の形式
const-rgx = (([A-Z_][A-Z0-9_]*)|(__.*__))$
# モジュール名の形式
module-rgx = (([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
# メソッド名の形式
method-rgx = [a-z_][a-z0-9_]{2,30}$
# 属性名の形式
attr-rgx = [a-z_][a-z0-9_]{2,30}$
# 引数名の形式
argument-rgx = [a-z_][a-z0-9_]{2,30}$
# クラス属性名の形式
class-attribute-rgx = ([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
# インラインコメントの形式
inline-quotes = single
# docstringの形式
docstring-quotes = double