はじめに #
Pythonの型チェックツールtyの基本的な使い方を備忘録として残します。 tyはAstral社が開発しているRust製のツールです。
この記事では、型チェックが何かについては解説せず、既に別の型チェックツールを使っている人がtyに移行することを想定しています。
本記事の環境は以下の通りです。
- Windows 10 Home 22H2
- uv 0.13.5
- Python 3.15.1
- ty 0.0.95
tyのインストール #
uv環境でtyを使います。 プロジェクトの仮想環境に開発用ライブラリとしてtyをインストールする場合、以下でインストールします。
uv add --dev tyプロジェクトの仮想環境ではなく、PCのグローバル環境にインストールする場合、以下になります。
uv tool install tytyの主要コマンド #
tyのよく使うコマンドを以下にまとめます。
インストール方法に応じて、先頭にuv runまたはuv tool runを付けます。
基本的なコマンド
# ヘルプを表示
ty
ty --help
# バージョンを表示
ty version
ty -V型チェックのコマンド
# 型チェックする。
ty check [OPTION] [PATH]ty checkの主なオプションは以下になります。
--fix: エラーを自動的に修正する。--python-version <version>: Pythonのバージョン (3.15など)-v,--verbose: 詳細を表示-q,--quiet: 出力を抑制
tyの型チェックルール #
tyの型チェックはRuleという単位で行われます。 多数のRuleが設定されており、一例を以下に示します。
invalid-return-type: メソッドの戻り値の型ヒントと、実際の変数の型が一致していない。invalid-assignment: 型ヒントがある変数に対し、それとは異なる型のデータを代入している。
各Ruleに対し、有効か無効か、そして違反時の扱いを以下の3つから指定できます。
ignore: Ruleを無効化する。warn: Ruleを有効化し、違反時は警告する。error: Ruleを有効化し、違反時はエラーを発生させる。
tyのデフォルト設定では、warnまたはerrorに設定したRuleに違反すると、終了コードは1になります(違反がなければ終了コードは0)。
tyの設定 #
tyの設定をpyproject.tomlまたはty.tomlに記述します。
Ruleの扱い方 #
Ruleの扱い方を変更する例を示します。
pyproject.tomlの場合、tool.tyセクションの中に記述する必要があります。
[tool.ty.rules]
invalid-return-type = "warn"
invalid-assignment = "ignore"ty.tomlの場合、tool.tyの記述を省略します。
[rules]
invalid-return-type = "warn"
invalid-assignment = "ignore"サードパーティ製ライブラリの型チェック無効化 #
サードパーティ製ライブラリが型ヒントに対応していない場合、tyのチェックでエラーが出る場合があります。
そのライブラリのチェックを無効化するには、以下のようにreplace-imports-with-anyを設定します。
[tool.ty.overrides.analysis]
replace-imports-with-any = ["pandas.**", "numpy.**"]