github microsoft/pyright 1.1.384
Published 1.1.384

12 hours ago

Bug Fixes:

  • Fixed bug that results in a false positive when Union and Unpack are used outside of a type expression. Normal type expression rules should not be applied in this case.
  • Fixed bug that results in a false negative under certain circumstances when using PEP 695 syntax and a TypeVarTuple multiple times in a signature.
  • Added limiter to sequence pattern matching logic to prevent a combinatoric explosion when performing tuple expansion during narrowing.
  • Fixed bug that results in incorrect type narrowing on assignment if the narrowed type is Self or another bound type variable.
  • Fixed a bug that leads to a false negative when a class-scoped variable is annotated with a value-constrained type variable and assigned a default value with one of the value constraints.
  • Fixed bug that results in a false positive when using a traditional (non-PEP 695) TypeVar in a type expression and assigning to a TypeForm.
  • Fixed recent regression that caused false positive errors with protocol matching in certain circumstances.
  • Fixed bug that leads to a false positive when a callable object uses a Callable type annotation for the self parameter in its own __call__ method.
  • Fixed a bug that results in the inability to rename a NamedTuple field.
  • Fixed a bug that results in incorrect type evaluation when the type of a dataclass field is declared with a type variable but its default value is concrete.

Enhancements:

  • Enhanced isinstance narrowing logic to retain type arguments in cases where the filter type (the second argument) is a child of the un-narrowed type and the child has a type parameter that is used multiple times in its base class (e.g. Child[T](Parent[T, T])).
  • Improved determinism of type evaluations involving unions of literal by taking into consideration literal values when sorting subtypes.
  • Updated typeshed stubs to the latest version.
  • Added support for *args: Unpack[T] when T is a type variable with an upper bound of a tuple.

Behavior Changes:

  • Removed provisional support for PEP 746 because the PEP has been modified, and there is disagreement about the best approach.
  • Changed the default python version from 3.12 to 3.13, now that 3.13 is the latest stable release.

Don't miss a new pyright release

NewReleases is sending notifications on new releases.