pyfltr¶
Python Formatters, Linters, and Testers Runner
Pythonの各種ツールをまとめて呼び出すツール。
ドキュメント: https://ak110.github.io/pyfltr/
llms.txt: https://ak110.github.io/pyfltr/llms.txt
対応ツール¶
- Formatters
- pyupgrade
- autoflake
- isort
- black
- ruff format(既定では無効。有効時は
ruff check --fix --unsafe-fixesを併走する、ruff-format-by-checkでOFF可) - prettier(既定では無効、
js-runner設定で起動方式を切替可能。--checkと--writeの2段階実行) - uv-sort(既定では無効、
pyproject.tomlの依存ソート) - shfmt(既定では無効、
bin-runner設定で起動方式を切替可能。prettierと同様の2段階実行)
- Linters
- ruff check(既定では無効)
- pflake8 + flake8-bugbear + flake8-tidy-imports
- mypy
- pylint
- pyright(既定では無効)
- ty(既定では無効)
- ec(editorconfig-checker。既定では無効、
bin-runner設定で起動方式を切替可能) - shellcheck(既定では無効、
bin-runner設定で起動方式を切替可能) - typos(既定では無効、
bin-runner設定で起動方式を切替可能) - actionlint(既定では無効、
bin-runner設定で起動方式を切替可能) - markdownlint-cli2(既定では無効、
js-runner設定で起動方式を切替可能。既定はpnpx) - textlint(既定では無効、
js-runner設定で起動方式を切替可能。textlint-packagesでプリセット/ルール指定) - eslint(既定では無効、
js-runner設定で起動方式を切替可能。--format jsonで機械可読出力を取得) - biome(既定では無効、
js-runner設定で起動方式を切替可能。biome checkサブコマンドと--reporter=githubを使用) - oxlint(既定では無効、
js-runner設定で起動方式を切替可能) - tsc(既定では無効、
js-runner設定で起動方式を切替可能。--noEmitで型チェックのみ実行)
- Testers
- pytest
- vitest(既定では無効、
js-runner設定で起動方式を切替可能。runサブコマンドで実行)
コンセプト¶
- 各種ツールをまとめて並列で呼び出し、実行時間を短縮する
- 各種ツールのバージョンには極力依存しない(各ツール固有の設定には対応しない)
- excludeの指定方法が各ツールで異なる問題を、pyfltr側で解決してツールに渡すことで吸収する
- blackやisortはファイルを修正しつつエラーとしても扱う(CI用途などを想定。pyupgradeは本来そのような動作)
- 設定は極力
pyproject.tomlに集約する