
2026/10/21 6:30
uv と ty を統合する
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
The text describes an experimental integration between
uv, a fast Python package manager, and ty, a type checker, designed to streamline workflows for developers using PEP 723 scripts. This combination creates a unified uv check command that automatically manages environments, installs dependencies, and performs type checking without manual setup or configuration. By leveraging PEP 723 metadata, uv prepares isolated environments while ty checks code, allowing scripts with independent requirements to be verified within their own context. While the full integration of Ruff is planned for future updates, the current release focuses on ty, requiring a specific security flag to enable automatic environment creation due to third-party code execution risks. The ecosystem also includes VS Code support via extensions and settings, as well as pre-commit hooks that utilize this workflow under the hood.本文
uv と ty の統合が正式リリース:Python スクリプトへのファーストクラスなサポートと一元化された診断
実験的な機能が正式版へ移行し、uv と ty の統合が利用可能となりました。これにより、Python スクリプトへの対応が強化され、
での一元化された診断も実現しています。uv check
Astral ツールチェーンのビジョン
Astral は Python エコシステム向けに以下的高パフォーマンスツールを開発しています:
- uv:パッケージマネージャー
- Ruff:リンターおよびフォーマッター
- ty:型チェッカーおよび言語サーバー
各ツールは個別に機能し、同時にエコシステム全体と連携することで相乗効果を発揮する統合されたワークフローを提供します。
主要な新機能
Python スクリプトへのファーストクラスなサポート
PEP 723(インラインメタデータ)を活用し、uv が環境準備を行ったのちに ty がスクリプトを理解・チェックできるようになりました。
- 統合された型チェック
- コマンドラインおよびエディタ上で、ty は uv を用いて各スクリプトの環境を自動的に準備します。
- スクリプトの宣言された依存関係に基づき、正確な型チェックが実行されます。
- 異なる要件の同時サポート
- リポジトリ内の異なるスクリプトは独立した依存関係や Python バージョンを宣言できます。
- それぞれのスクリプトは自身の要件のみを確認対象とします。
- エディタ上の高度な機能
- PEP 723 メタデータの同期により、補完、ホバー情報、定義の移動などが利用可能になります。
- エディタ統合を有効にすると、ty はバックグラウンドで uv を呼び出し、必要な環境を自動セットアップします。
- 将来の予定
- スクリプトサポートをデフォルトで有効化し、標準的なプロジェクトへの自動環境セットアップを導入予定です。
一元化された診断コマンド
コマンドが ty のサポートを含む統一されたインターフェースを提供します。将来的には Ruff も統合予定。uv check
- 自動環境セットアップとチェック
を実行すると、環境の準備や依存関係のインストールが行われます(初回のみ ty バイナリのインストールが必要)。uv check- プロジェクトが即座に動作し、過去に未使用だった場合でも体験の変化はありません。
- ワークスペース対応
- 個々のパッケージだけでなく、全体ワークスペースもチェック可能です。
- 特定のパッケージ:
uv check --package <name> - 全パッケージ:
uv check --all-packages
- 特定のパッケージ:
- ワークスペースが成長しても設定変更は不要です。
- 個々のパッケージだけでなく、全体ワークスペースもチェック可能です。
- 独立したスクリプト対応
- PEP 723 スクリプトは独自の環境を持ち、個別にチェックされます。
- 例:
uv check --script example.py
- 例:
- PEP 723 スクリプトは独自の環境を持ち、個別にチェックされます。
- バージョン管理と CI/CD
は lockfile に記録された ty のバージョンを使用します。uv check- プロジェクト設定をコミットすることで、開発者や CI が同じ ty バージョンを共有できます。
- pre-commit フックとの連携
- pre-commit フックは裏側で
を使用し、依存関係宣言から自動的に ty の環境を設定します。uv check
- pre-commit フックは裏側で
動作原理
統合は uv ワークスペースメタデータ に基づいています。ty は uv から取得したパッケージ情報、依存関係、および Python エンバロンメントを用いて型チェックやエディタ機能を提供します。
- PEP 723 スクリプトの処理フロー
- ty は uv を呼び出し、宣言された依存関係を含む環境を構築します。
- サードパーティ製コードの実行が必要となるため、現在は**オプトイン(手動有効化)**が必要です。
エディタでの有効化方法(例:VS Code)
PEP 723 スクリプトの統合を試す場合は、以下のように
settings.json で uv 統合を有効にしてください。
{ "ty.experimental.useUv": "on" }
- コマンドラインでの利用
- プロジェクト内で
を実行するだけで、設定なしで自動的に統合が有効になります。uv check
- プロジェクト内で
要件とバージョン情報
以下のバージョンが必要です:
- uv: 0.12.3 以上
- ty: 0.0.76 以上
次のステップ
この機能は現在実験的段階です。体験改善のため、皆様からのフィードバックを歓迎します。
- 今後の開発計画
- uv の環境機能と ty のコード理解を組み合わせた新しいチェック機能(例:未使用依存関係の検出など)の開発を進めます。
- 詳細は将来的な記事で発表予定です。
- 安定化への取り組み
- ty の安定版リリースに向けた作業も並行して継続しています。
本統合の実装にあたり、Astral チームの Aria Desires 氏、Micha Reiser 氏、および Zsolt Dollenstein 氏の尽力に深く感謝申し上げます。