MypyからTyへ: Ruff開発元が作った超高速Rust製Python型チェッカー導入ガイド
(blog.pythonlibrary.org)要約:
- Astral(Ruff開発元)が公開したRust製の新しいPython型チェッカー「ty」の導入および移行方法を扱います。
- 「ty」は基本的にMypyのstrictモードに近い動作をし、
uvによるインストールと実行を標準でサポートします。 - まだ公式のpre-commitサポートはありませんが、コミュニティのワークアラウンドを利用でき、GitHub Actionsとの連携方法も詳しく紹介します。
詳細要約:
1. Tyの紹介と特徴
MypyとPyrightが主導してきたPython型チェックのエコシステムに、Astralが開発した「ty」が新たに登場しました。Ruffと同様にRustで書かれており、非常に高速です。
2. インストールとローカル実行
「ty」はuvを通じて簡単にインストールして実行できます。
- インストール:
# uvによるツールのインストール uv tool install ty@latest # またはstandaloneインストールをサポート(ドキュメント参照) - 実行:
# インストール後に実行 uv run ty # インストールせずに実行(uvxを使用) uvx ty # 直接実行 ty check
3. 設定(Configuration)
pyproject.tomlまたはty.tomlで設定できます。
- 基本動作: 設定なしで実行した場合、Mypyのstrictモードと非常によく似た動作をします。
- 制約事項: 現時点では不足している型ヒント(missing type hints)を強調表示しません。これを強制したい場合は、Ruffの
flake8-annotationsルールをpyproject.tomlに追加して補完する必要があります。
4. GitHub Actions連携
CI環境でPR作成時に自動で型チェックを実行するよう、.github/workflows/ty.ymlを作成して設定できます。
name: ty
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
workflow_dispatch:
jobs:
build:
if: github.event.pull_request.draft == false
runs-on: self-hosted
steps:
- uses: actions/checkout@v3
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install ty==0.0.7
- name: Run ty
run: ty check
continue-on-error: false
(参考: tyのバージョンはリリース状況に合わせて更新が必要です。)
5. Pre-commit統合
現在、公式のpre-commitフックはサポートされていませんが(Issue #269)、コミュニティが提供するワークアラウンド(例: ty-pre-commit)を使って.pre-commit-config.yamlに統合できます。今後公式サポートが提供された際には設定の更新が推奨されます。
まだコメントはありません。