Pyrefly v0.47.0
Status : BETA
Release date: 05 January 2026
Pyrefly v0.47.0 bundles 207 commits from 35 contributors.
✨ New & Improved
| Area | What’s new |
| :---- | :---- |
| LSP Features | - Improved autocompletion for keys in .get() on TypedDicts
- Improved documentation in hover tooltips for attributes like dataclass fields
- Improved import handling: import X as X and from Y import X as X are now recognized as explicit re-exports and not flagged as unused imports. |
| Type Checking | - TypeIs calls now correctly narrow to the intersection of types instead of Never.
-Final attributes that are not initialized on the class are now enforced as such. Previously, Final was only enforced if the attribute was initialized on the class.
- Improved typing spec conformance by extending reassignment checks for variables declared as Final to additional binding constructs including unpacking, context managers, and loops. |
| | - Support added for Annotated fields - Pyrefly now validates fields at instantiation, catching out-of-range arguments (e.g., when must be ). |
| | - New error codes warns about incomplete statements over Enums and unions of literals. - New error that is emitted when a method overrides a parent class method but does not have the decorator. This error is off by default and can be enabled in your configuration - Pyrefly now suggests the closest module name for mistyped imports (e.g., → ). |