Skip to content

chore(deps): update pytype and pyright #11595

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Mar 14, 2024
Merged

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Mar 14, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
pyright (source) 1.1.350 -> 1.1.354 age adoption passing confidence
pytype (source) ==2024.2.27 -> ==2024.3.11 age adoption passing confidence

Release Notes

Microsoft/pyright (pyright)

v1.1.354: Published 1.1.354

Compare Source

Bug Fixes:

  • Fixed a bug that resulted in an incorrect type evaluation when an augmented assignment is used within an inner-scoped function to add a constant to a variable. Literal math should not be used in this case.
  • Fixed two bugs that resulted in false negatives when redefining a constant variable with a non-variable symbol and when redefining a Final variable with a non-variable symbol.
  • Fixed bug that results in false positive when a generic class or type alias uses a TypeVarTuple followed by one or more ParamSpecs that have default values.
  • Fixed bug that resulted in false negative when narrowing a constrained or bound TypeVar with a complex() or float() class pattern.
  • Fixed bug that results in a false positive under certain circumstances when a constrained TypeVar is used as the default for another constrained TypeVar.
  • Fixed a bug that results in a false positive under certain circumstances when defining a type alias using the old typing.TypeAlias annotation.
  • Fixed a bug that results in a false negative when a class explicitly inherits from a protocol that defines an instance variable but the child re-declares as a ClassVar without an explicit type.
  • Fixed a bug that made locale overrides through environment variables no longer work on node 21.

Enhancements:

  • Enhanced handling of type function when it is passed a class. Pyright previously evaluated this as Any, but now it returns the class' metaclass.
  • Added check for generic classes and type aliases that include a TypeVarTuple followed by a TypeVar that has a default value. This is illegal according to PEP 696.
  • Changed the behavior when accessing a class attribute from a generic class that is not specialized. The class is now automatically specialized in the case using default type parameter values (from PEP 696) or Unknown. This change is required for conformance with PEP 696.
  • (From pylance) Added some optimizations to the tokenizer to reduce memory usage.
  • Added new reportUnhashable diagnostic rule.

v1.1.353: Published 1.1.353

Compare Source

Breaking Changes:

  • The CLI and language server versions of pyright now require a minimum node version of 14. Previously node 12 and 13 were supported.

Enhancements:

  • Enabled PEP 705 and PEP 696 functionality without the use of enableExperimentalFeatures now that these PEPs are officially accepted.
  • Improved support for instance variables whose type is declared in a metaclass. Pyright now honors this type and enforces type consistency in derived classes.

Bug Fixes:

  • Fixed a bug that results in a false negative when a dundered method overrides a base class method of the same name and uses different parameter names along with different types.
  • Fixed a bug that leads to a false positive error when a match statement is used in a loop and the subject expression is potentially narrowed as a result of the match statement.
  • Added check for inappropriate use of Annotated passed as second argument to NewType call.
  • Fixed a bug that results in a false positive error when expanding the type arguments to a TypeVarTuple under certain circumstances.
  • Fixed a bug that results in incorrect type evaluation when an index expression is assigned a value within a doubly-nested loop under certain circumstances.
  • Fixed a regression that caused the signature help provider to not display the __new__ method of a constructor if it is overloaded.
  • Fixed hard-coded type information for module attribute __package__. It should be str | None rather than str.
  • Fixed a bug in the isinstance type guard logic. It was not properly handling tuples that included unions.
  • Fixed bug in signature help provider so str method docstrings are showed when called on LiteralString.
  • Fixed a bug that results in incorrect type narrowing behavior for member access expressions under certain circumstances.
  • Fixed bug that resulted in a false negative when a possibly-unbound variable is captured by an inner scope under certain circumstances.

v1.1.352: Published 1.1.352

Compare Source

Enhancements:

  • Implemented provisional support for PEP 728 (support for extra items within TypedDicts). You must set enableExperimentalFeatures to true for now.
  • Added support for concatenated strings used in a @deprecated decorator.
  • Added support for call-site return type inference for class and instance methods.
  • Improved handling of enum.nonmember in cases where the attribute has a declared type.
  • Added missing check for inappropriate use of InitVar outside of a dataclass.

Behavior Changes:

  • Added special-case handling for 'typing_extensions' module whose stubs are part of typeshed's stdlib stubs even though it is not part of stdlib.
  • Refined the heuristic for when to use bidirectional type inference for the RHS of and and or operators.
  • Changed behavior of command-line "--pythonversion" and "--pythonplatform" options so they now override the same-named options in the config file.

Bug Fixes:

  • Fixed a bug that resulted in a false negative when attempting to use TypedDict or Protocol as an upper bound when using PEP 695 syntax.
  • Fixed a bug that resulted in "reportUnnecessaryTypeIgnoreComment" diagnostics to be generated even if the source file was in the "ignore" list.
  • Fixed a bug that leads to incorrect type inference for a lambda when passed to a constructor in certain circumstances.
  • Fixed a bug that leads to a false positive type violation when reassigning a value within a loop and the target variable has a declared type of a constrained type variable.
  • Fixed a bug that results in a false negative when passing an unpacked dict of the wrong type to a function that contains a positional-only parameter marker plus one or more keyword parameters.
  • Fixed a bug in the import resolver that resulted in an incorrect resolution when an import within a __init__.py file uses the form from .a import a.
  • Fixed a bug that results in a false positive error when an await expression is passed as an argument to an overloaded function.
  • Fixed a bug that results in an incorrect "Unbound" type evaluation for a variable assigned within a loop.

v1.1.351: Published 1.1.351

Compare Source

Bug Fixes:

  • Fixed bug that results in a false positive "no overload implementation" error if an overloaded function is passed through a decorator that uses a ParamSpec.
  • Fixed a recent regression that results in a false positive error when an Enum subclass overrides __new__ or __init__ and then a subclass of that class assigns tuple values when defining enum members
  • Fixed a bug that results in a false positive error when a method defined within a named tuple is overridden by a subclass
  • Fixed a bug that results in a false positive error when a enum.nonmember value is assigned to a class-scoped variable with a type annotation in an Enum class.
  • Fixed a bug in the type narrowing logic for class pattern matching that resulted in incorrect narrowing in the negative (fall-through) case.
  • Added missing check for inappropriate use of an unpacked TypeVarTuple within a TypeAliasType type parameter list.
  • Fixed a false positive reportUnknownArgumentType error when assigning an empty list or dict expression to an index expression subscripted with a slice.
  • Fixed bug that results in a false positive error when assigning a tuple value that includes an unpacked TypeVarTuple to another tuple that also includes an unpacked TypeVarTuple.
  • Fixed bug that results in a false positive error when calling update on a TypedDict with zero defined entries.
  • Fixed a bug that results in a false positive with the reportUnnecessaryCast check if the second argument is a special form.
  • Fixed a bug that led to incorrect type evaluation for a call that targets a generic function that uses a default argument for one of the generic parameters.

Behavior Changes:

  • Change the heuristic for determining whether a metaclass supports __or__. In the case where the metaclass derives from Any or Unknown, pyright now assumes that it doesn't override __or__.
  • Changed behavior of CLI's --watch mode. Previously, it reported diagnostic deltas when it detected a change, but it is more useful if it reports all remaining diagnostics even for files that it didn't reanalyze due to a file change.

Enhancements:

  • Updated typeshed stubs to the latest version.
  • Added provisional support for draft PEP 742 (TypeIs).
  • Added check for the use of an implicit position-only parameter (one that starts with a double underscore) that is located after a non-position-only parameter.

Configuration

📅 Schedule: Branch creation - "before 4am" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot added the bot: dependencies 🤖 Dependency file updates by renovate 🤖 label Mar 14, 2024
def index(self, item: _T, __start: SupportsIndex = 0, __stop: SupportsIndex = sys.maxsize) -> int: ...
# The runtime signature is "item, *args", and the arguments are then passed
# to `list.index`. In order to give more precise types, we pretend that the
# `item` argument is positional-only.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a bit unfortunate because it disallows a legal call lst.index(item="x"). However, it's unlikely anyone would write that, and I don't see a better alternative that preserves type safety.

This comment has been minimized.

@JelleZijlstra
Copy link
Member

OK I think the only remaining failures are the third-party stubtest on Mac, which fail with some mysterious uv failure (#11594).

Copy link
Contributor

According to mypy_primer, this change has no effect on the checked open source code. 🤖🎉

@srittau srittau merged commit 48106fe into main Mar 14, 2024
@srittau srittau deleted the renovate/pytype-and-pyright branch March 14, 2024 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot: dependencies 🤖 Dependency file updates by renovate 🤖
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants