How we chose Positron's Python type checker
10 hours ago
- #Data Science Tools
- #Python Type Checkers
- #IDE Integration
- Positron evaluated four open-source Python type checkers (Pyrefly, ty, Basedpyright, Zuban) to select a default for enhancing Python data science.
- Key evaluation dimensions included feature completeness, correctness, performance, ecosystem health, and development velocity.
- Pyrefly, backed by Meta, uses aggressive type inference, catching bugs even in untyped code, and offers clean hover documentation with hyperlinks.
- ty, developed by Astral (acquired by OpenAI), follows a 'gradual guarantee' philosophy, only flagging errors in annotated code, and is the fastest in performance.
- Basedpyright, a community fork of Pyright, is mature and feature-complete but defaults to stricter type checking, which may overwhelm data scientists.
- Zuban, from the author of Jedi, aims for mypy compatibility but is less mature, with limited third-party library completions and a two-step installation.
- Positron chose Pyrefly as the default due to its balance of features, active development, MIT license, and suitability for data science workflows.
- Users can easily switch language servers in Positron by installing alternatives and disabling Pyrefly, ensuring flexibility as tools evolve.
- The type checker ecosystem is rapidly evolving, with ongoing improvements from all contenders, and Positron plans to continue evaluations.