pyfltr: Python Formatters, Linters, and Testers Runner.
Project description
pyfltr: Python Formatters, Linters, and Testers Runner.
Pythonの各種ツールをまとめて呼び出すツール。
- Formatters
- pyupgrade
- isort
- black
- Linters
- pflake8
- mypy
- pylint
- Testers
- pytest
コンセプト
- 各種ツールをまとめて呼び出したい
- 各種ツールのバージョンにはできるだけ依存したくない (ので設定とかは面倒見ない)
- exclude周りは各種ツールで設定方法がバラバラなのでできるだけまとめて解消したい (のでpyfltr側で解決してツールに渡す)
- blackやisortはファイルを修正しつつエラーにもしたい (CIとかを想定) (pyupgradeはもともとそういう動作)
- Q: pysenでいいのでは? A: それはそう
主な使い方
通常
$ pyfltr [files and/or directories ...]
対象を指定しなければカレントディレクトリを指定したのと同じ扱い。
*.*
などを指定した場合も、pytest以外は*.py
のみ、pytestは*_test.py
のみに対して実行される。
終了コード:
- 0: Formattersによるファイル変更無し、かつLinters/Testersでのエラー無し
- 1: 上記以外
特定のツールのみ実行
$ pyfltr --commands=pyupgrade,isort,black,pflake8,mypy,pylint,pytest [files and/or directories ...]
カンマ区切りで実行するツールだけ指定する。
設定
pyproject.toml
で設定する。
例
[tool.pyfltr]
pyupgrade_args = ["--py38-plus"]
pylint_args = ["--jobs=4"]
extend-exclude = ["foo", "bar.py"]
設定項目
設定項目と既定値はpyfltr --generate-config
で確認可能。
- {command} : コマンドの有効/無効
- {command}_path : 実行するコマンド
- {command}_args : 追加のコマンドライン引数
- exclude : 除外するファイル名パターン(既定値あり)
- extend-exclude : 除外するファイル名パターン(既定値は空)
各種設定例
pyproject.toml
...
[tool.poetry.dev-dependencies]
pyfltr = "*"
[tool.pyfltr]
pyupgrade_args = ["--py38-plus"]
pylint_args = ["--jobs=4"]
...
.pre-commit-config.yaml
- repo: local
hooks:
- id: system
name: pyfltr
entry: poetry run pyfltr --commands=pyupgrade,isort,black,pflake8
types: [python]
require_serial: true
language: system
CI例
- poetry install --no-interaction
- poetry run pyfltr
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyfltr-1.0.2.tar.gz
(7.3 kB
view hashes)
Built Distribution
pyfltr-1.0.2-py3-none-any.whl
(7.0 kB
view hashes)