コンテンツにスキップ

pyfltr

Python Formatters, Linters, and Testers Runner

CI PyPI version

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に集約する

インストール

pip install pyfltr