12 ポイント 投稿者 darjeeling 2026-01-10 | まだコメントはありません。 | WhatsAppで共有

要約:

  • 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に統合できます。今後公式サポートが提供された際には設定の更新が推奨されます。

まだコメントはありません。

まだコメントはありません。