コンテンツにスキップ

ty - 高速 Python 型チェッカー チートシート

ty - 高速 Python 型チェッカー チートシート

tyはAstral (Ruff と uv の背後にあるチーム) が開発した超高速Python 型チェッカーと言語サーバーで、Rust で書かれている。それは型チェックに同じパフォーマンス哲学を適用する:mypy は大規模なコードベースで数分かかることがあるが、ty はほぼ瞬時のフィードバックを目指しており、型チェックを CI でのみではなく、すべての保存で実行可能にする。これは現代的な Astral Python ツールチェーン — パッケージング用 uv、lint/format 用 Ruff、型用 ty — を完成させる。

ty は mypy より新しく、成熟途中。広範な CI ゲートとして設定する前に、コードベースに対して検証する。

インストール

方法コマンド
uv (推奨)uv tool install ty
uvx (インストール不要)uvx ty check
pippip install ty
確認ty --version

コードのチェック

コマンド説明
ty check現在のプロジェクトをチェック
ty check src/特定のパスをチェック
ty check --watchファイル変更時に再チェック
ty check --output-format conciseコンパクト出力
ty check --error-on-warning警告をエラーとして扱う
ty --help完全なオプション一覧

設定

ty は pyproject.toml を読む:

[tool.ty]
# チェックするパス
src = ["src", "tests"]

[tool.ty.environment]
python-version = "3.12"
# 依存関係を見つける場所
python = ".venv"

[tool.ty.rules]
# 個々の診断をチューン
possibly-unbound-attribute = "warn"
unused-ignore-comment = "ignore"
セクション目的
[tool.ty]プロジェクト レイアウト / 含まれるパス
[tool.ty.environment]Python バージョン、venv、検索パス
[tool.ty.rules]各ルールをerrorwarn、またはignoreに設定

診断の抑制

形式効果
# ty: ignore行のすべての診断を抑制
# ty: ignore[rule-name]特定のルールを抑制
# type: ignore同じく尊重 (mypy互換)

言語サーバー (エディター統合)

エディター方法
VS CodeAstral ty 拡張をインストール
Neovimty server を LSP として設定
任意 LSP クライアントty server を実行

言語サーバーは、CLI と同じ速度でインライン型エラー、ホバー型、定義へのジャンプを提供する。

一般的な診断

診断意味
invalid-argument-type引数がパラメーター型に一致しない
unresolved-attribute属性が型に存在しない
possibly-unbound-variable変数が割り当てる前に使用される可能性がある
invalid-return-typeリターンが注釈と一致しない
unresolved-importインポートを解決できない

Astral ツールチェーン

# 完全な現代的 Python 品質ゲート
uv sync                 # deps、ロック済みで高速
uv run ruff format .    # フォーマット
uv run ruff check .     # lint
uv run ty check         # 型
uv run pytest           # テスト
ツール置き換え
uvpip、pip-tools、virtualenv、pyenv、poetry
Ruffblack、flake8、isort、pyupgrade、+ 他
tymypy (型チェック)

CI 統合

# 型エラーでビルドを失敗させる
uvx ty check --error-on-warning

# 変更されたファイルのみをチェック (git) 
git diff --name-only origin/main -- '*.py' | xargs uvx ty check

ty vs その他の型チェッカー

側面tymypyPyright
言語RustPythonTypeScript/Node
速度非常に高速より遅い高速
成熟度より新しい最も成熟成熟
エディター LSP組み込みプラグイン経由組み込み (Pylance)
最適用途速度 + Astral スタックエコシステム互換性VS Code ユーザー

リソース