Skip to main content

compare-python-typecheckers

Compare Python type inference with ty, pyrefly, basedpyright, and mypy.

ソース情報

リポジトリ
JetBrains/intellij-community
ソースの最終更新活動
2026年8月5日 18:20
検出された SKILL.md の言語
英語
スター
20,445
フォーク
6,009

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
2 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
compare-python-typecheckers
description
Compare Python type inference with ty, pyrefly, basedpyright, and mypy.
# Compare Python type checkers When reasoning about how PyCharm *should* infer a type or whether something ought to be a type error, cross-checking against the real third-party checkers is the fastest way to gain insight — and to see where they disagree. This skill runs them all on a scratch file or snippet and collates the output into a single report. ## Run it `${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py` invokes each checker through `uvx` (fetched on demand — no install; the network is used on first run) and prints a Markdown report: a summary table (exit code / verdict / timing per tool) followed by each tool's raw output. ```bash # Inline snippet: uv run ${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py -c 'def f(x: int) -> int: return x f("a")' # An existing file: uv run ${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py path/to/test.py # A subset, written to a file: uv run ${CLAUDE_SKILL_DIR}/scripts/compare_typecheckers.py test.py --tools ty,mypy -o /tmp/report.md ``` Flags: `-c/--code` (inline snippet), `-t/--tools ty,mypy,…` (subset), `-o/--output` (write to file), `--timeout` (per-checker seconds, default 180). The script exits 0 whenever it produced a report — findings live in the report, not the exit code. ## Reading the result - The summary table shows each tool's exit code (**0 = nothing flagged**, non-zero = the checker reported an issue or failed to run), a verdict, and time. - Output **formats differ** per tool, so read each section, not just the table: - `ty` (Astral) and `pyrefly` (Meta) each have their own diagnostic style. - `basedpyright` is pyright-based and also emits extra diagnostics such as `reportUnusedCallResult`. - `mypy` and `zuban` share the same message format (`zuban` is mypy-compatible). - The checkers track their latest releases through `uvx`, so behaviour can shift over time — record the date when capturing results in a YouTrack issue or test. ## Manual one-offs The exact per-tool invocations, if you want to run just one by hand (note `basedpyright` takes the file positionally — no `check` subcommand): | Tool | Command | |------|---------| | ty | `uvx ty check test.py` | | pyrefly | `uvx pyrefly check test.py` | | basedpyright | `uvx basedpyright test.py` | | mypy | `uvx mypy test.py` | | zuban | `uvx zuban check test.py` |
GitHubで見る