ty-skills について
Python の型チェック、診断、ルール設定、mypy や pyright からの移行を扱う ty のスキルガイドです。Python 開発者向けに、高度な型パターンとエディター設定も説明します。
主な機能
- 01ty のインストールとチェック方法
- 02ルールと重大度の設定
- 03交差型と高度なパターンの解説
- 04mypy または pyright からの移行ガイド
- 05エディター設定の参考情報
活用シーン
- 01Python コードへの型注釈の追加
- 02ty の診断内容の調査と修正
- 03型チェックルールの調整
- 04既存の mypy または pyright 設定の移行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jiatastic/ open-python-skills --skill ty-skillsインストール後、Claude Code で/ty-skillsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/advanced_patterns.mdcommon_errors.mdmigration_guide.mdty_rules_reference.mdtyping_cheatsheet.mdreferences/editor_setup/cursor.mdneovim.mdvscode.md詳細
ty-skills
ty を使って Python の型チェックを習得しましょう。uv と Ruff の開発元である Astral が Rust で開発した、非常に高速な型チェッカーです。
このスキルを使用する場面
- Python コードに型アノテーションを追加するとき
- ty の型エラーや診断結果を修正するとき
- ty のルールと重大度を設定するとき
- mypy または pyright から ty に移行するとき
- 高度な型パターン(交差型、プロトコル、ジェネリクス)を理解するとき
- エディターで ty 言語サーバーを設定するとき
クイックスタート
# Install
uv tool install ty
# or: pip install ty
# Check current directory
ty check
# Check specific files
ty check src/
# Full diagnostics
ty check --output-format full
設定
pyproject.toml で設定します。
[tool.ty.environment]
python-version = "3.12"
python = "./.venv"
python-platform = "linux"
root = ["./src"]
extra-paths = ["./typings"]
[tool.ty.rules]
# error: fail CI, warn: report, ignore: disable
possibly-unresolved-reference = "error"
invalid-argument-type = "error"
division-by-zero = "warn"
unused-ignore-comment = "warn"
[tool.ty.src]
include = ["src", "tests"]
exclude = ["src/migrations/"]
# Per-file overrides
[[tool.ty.overrides]]
include = ["tests/**"]
[tool.ty.overrides.rules]
possibly-unresolved-reference = "warn"
ルールのクイックリファレンス
| ルール | デフォルト | 説明 |
|---|---|---|
possibly-unresolved-reference | error | 変数が定義されていない可能性があります |
invalid-argument-type | error | 引数の型が一致しません |
incompatible-assignment | error | 代入された値に互換性がありません |
missing-argument | error | 必須の引数がありません |
unsupported-operator | error | この型では演算子がサポートされていません |
invalid-return-type | error | 戻り値の型が一致しません |
division-by-zero | warn | ゼロ除算の可能性があります |
unused-ignore-comment | warn | 抑制コメントが不要です |
redundant-cast | warn | キャストしても効果がありません |
possibly-unbound-attribute | warn | 属性が存在しない可能性があります |
index-out-of-bounds | warn | インデックスが範囲外になる可能性があります |
交差型(ty 独自)
ty は交差型をファーストクラスでサポートしています。
def output_as_json(obj: Serializable) -> str:
if isinstance(obj, Versioned):
reveal_type(obj) # reveals: Serializable & Versioned
return str({
"data": obj.serialize_json(), # From Serializable
"version": obj.version # From Versioned
})
return obj.serialize_json()
抑制コメント
# Suppress single rule
x: int = "hello" # type: ignore[incompatible-assignment]
# Suppress multiple
y = risky() # type: ignore[possibly-unresolved-reference, invalid-argument-type]
リファレンスドキュメント
詳しくは、以下を参照してください。
| ドキュメント | 内容 |
|---|---|
references/ty_rules_reference.md | すべてのルールと例、修正方法 |
references/typing_cheatsheet.md | Python の typing モジュールのクイックリファレンス |
references/advanced_patterns.md | プロトコル、ジェネリクス、型ガード、分散 |
references/migration_guide.md | mypy/pyright から ty への移行 |
references/common_errors.md | 例を含むエラーの解決方法 |
references/editor_setup/ | VS Code、Cursor、Neovim の設定 |
リソース
コメント
Markdown 対応