basedpyright-type-checking について
Pythonプロジェクト向けにBasedpyrightの設定と使い方を案内するスキルです。厳格度の選択、段階的な導入、エディター支援、Pyrightやmypyとの比較を扱います。
主な機能
- 01複数の厳格度で型チェックを設定
- 02型チェック範囲の段階的な拡大
- 03監視モードとJSON出力の実行
- 04Basedpyright、Pyright、mypyの比較
活用シーン
- 01Pythonプロジェクトの型チェック設定
- 02レガシーコードへの型付けの段階的導入
- 03CIでの型チェック実行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill basedpyright-type-checkingインストール後、Claude Code で/basedpyright-type-checkingを入力して読み込まれたか確認します。
同梱ファイルREFERENCE.md
詳細
Basedpyright の型チェック
Basedpyright は Pyright のフォークで、追加機能とより厳格なデフォルト設定を備え、最大限の型安全性とパフォーマンスを実現するよう設計されています。
このスキルを使用する場面
| 次の場合にこのスキルを使用します… | 次の場合は別のツールを使用します… |
|---|---|
| Python の型チェックを設定する | コードをフォーマットする(ruff format を使用) |
| 厳格な型検証を設定する | スタイル上の問題をリントする(ruff check を使用) |
| 型チェッカーを比較する(basedpyright と mypy) | 未使用コードを検出する(vulture/deadcode を使用) |
| 型情報に基づくエディターサポートのために LSP を設定する | テストを実行する(pytest を使用) |
インストール
uv を使用する(推奨)
# Install globally
uv tool install basedpyright
# Install as dev dependency
uv add --dev basedpyright
# Run with uv
uv run basedpyright
pipx を使用する
pipx install basedpyright
基本的な使い方
# Check entire project
basedpyright
# Check specific files/directories
basedpyright src/ tests/
# Watch mode for development
basedpyright --watch
# Output JSON for tooling integration
basedpyright --outputjson
# Verbose diagnostics
basedpyright --verbose
設定
最小限の厳格な設定(pyproject.toml)
[tool.basedpyright]
typeCheckingMode = "strict"
pythonVersion = "3.12"
include = ["src"]
exclude = ["**/__pycache__", "**/.venv"]
# Basedpyright-specific strict rules
reportUnusedCallResult = "error"
reportImplicitStringConcatenation = "error"
reportMissingSuperCall = "error"
reportUninitializedInstanceVariable = "error"
型チェックモード
| モード | 説明 | 用途 |
|---|---|---|
off | 型チェックなし | レガシーコード、移行の開始時 |
basic | 基本的な型チェック | 段階的な型付けの導入 |
standard | 標準的な厳格さ | ほとんどのプロジェクト(Pyright のデフォルト) |
strict | 厳格な型チェック | 型安全なコードベース |
all | 最大限の厳格さ | 高い保証が求められるシステム |
段階的な型チェック
# Start with basic mode
[tool.basedpyright]
typeCheckingMode = "basic"
include = ["src/new_module"] # Type check new code only
# Gradually expand
include = ["src/new_module", "src/api"]
# Eventually enable strict mode
typeCheckingMode = "strict"
include = ["src"]
型チェッカーの選び方
| 要素 | Basedpyright | Pyright | mypy |
|---|---|---|---|
| 速度 | 最速 | 最速 | 遅め |
| 厳格さ | 最も厳格なデフォルト設定 | 設定可能 | 設定可能 |
| LSP サポート | 組み込み | 組み込み | dmypy 経由 |
| プラグインシステム | 限定的 | 限定的 | 豊富 |
より厳格なデフォルト設定と最速の速度で最大限の型安全性を求めるなら、Basedpyright を選びます。 Microsoft の公式サポートと VS Code Pylance との互換性を求めるなら、Pyright を選びます。 豊富なプラグインエコシステム(django-stubs、pydantic-mypy)を求めるなら、mypy を選びます。
インラインのエラー抑制
# Inline type ignore
result = unsafe_operation() # type: ignore[reportUnknownVariableType]
# Function-level ignore
def legacy_function(): # basedpyright: ignore
pass
エージェント向けの最適化
| コンテキスト | コマンド |
|---|---|
| クイックチェック | basedpyright |
| JSON 出力 | basedpyright --outputjson |
| ウォッチモード | basedpyright --watch |
| CI チェック | uv run basedpyright |
| 詳細表示 | basedpyright --verbose |
クイックリファレンス
| フラグ | 説明 |
|---|---|
--watch | 開発用のウォッチモード |
--outputjson | ツール向けの JSON 出力 |
--verbose | 詳細な診断情報 |
--pythonversion X.Y | Python バージョンを上書き |
--level <mode> | 型チェックモードを上書き |
詳細な設定オプション、LSP 統合、移行ガイド、CI の設定、ベストプラクティスについては、REFERENCE.md を参照してください。
コメント
Markdown 対応