Replace basedpyright with ty for Python type checking - #9546
Open
robert3005 wants to merge 2 commits into
Open
Conversation
Replace basedpyright with Astral's ty type checker for the Python bindings: - Swap the shared basedpyright dev dependency for ty and replace the [tool.basedpyright] sections with [tool.ty] configuration. First-party source roots let ty resolve vortex and vortex_cuda from the in-tree sources and stubs, and the vendored obstore stubs stay excluded. - Update CI workflows, check.sh, and the Python agent guidance to run 'ty check' instead of basedpyright. - Drop all now-dead 'pyright: ignore' comments and file-level pyright directives. Most suppressed rules have no ty counterpart; where ty still diagnoses the same stub or API mismatch, carry the suppression over as a targeted 'ty: ignore' comment. - Annotate _import_cudf_modules with ModuleType instead of object so attribute access on the dynamically imported modules type-checks without suppressions. Signed-off-by: "Robert" <robert@spiraldb.com>
ty resolves the vortex package from the in-tree sources and stubs via the configured source roots, so the lint job only needs the Python dependencies. Syncing with --no-install-package for the two maturin packages avoids the ~4.5 min extension build. Signed-off-by: "Robert" <robert@spiraldb.com>
Merging this PR will improve performance by 12.4%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | cold_misaligned[(16, 64)] |
429.3 µs | 382 µs | +12.4% |
Tip
Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.
Comparing claude/vortex-python-basedpyright-ty-6yghm3 (6f50bcb) with develop (f623d85)
Footnotes
-
54 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
robert3005
enabled auto-merge (squash)
August 22, 2026 14:45
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace basedpyright with ty. Since ty is a native binary we no longer need to install the package to lint it