tox.ini
[tox] # global settings.
envlist = py310, black, isort, flake8
[testenv] # 全ての環境に継承される (上書きされない限りはこの設定が使われる)
deps = -r src/requirements/dev.txt
[testenv:black]
# See pyproject.toml
deps = black
commands =
# コードチェックのみを行う(自動フォーマットはしない)。フォーマットされる箇所を色付きで表示する。
black {posargs:src/} --check --diff --color
[testenv:isort]
# See pyproject.toml
deps = isort
commands =
isort {posargs:src/} --diff --check-only
[testenv:flake8]
deps = flake8
commands =
flake8 {posargs:src/}
[flake8]
max-line-length = 88
exclude = requirements, migrations, proj, node_modules
pyproject.toml
を作り、blackとisortの設定を書く。
pyproject.toml
[tool.black]
line-length = 88
target-version = ['py310']
exclude = '''
/(
| migrations
)/
'''
[tool.isort]
profile = "black"
skip = ["migrations", "venv", ".tox"]
最後に Makefile
を作り、コマンドを登録する。
Makefile
tox:
tox --parallel
# 新しいパッケージを入れた時
tox-r:
tox -r
# コードを自動フォーマット
black:
# See pyproject.toml
black src/
# import文を入れ替え
isort:
# See pyproject.toml
isort src/
# tox.iniの設定でflake8を実行
flake8:
# See tox.ini
tox -e flake8