Invalid usage of new-style type parameters and type aliases
Reports invalid usage of PEP 695 type parameter syntax
Finds the following problems in function and class definitions and new-style type alias statements:
Extending typing.Generic in new-style generic classes
Extending parameterized typing.Protocol in new-style generic classes
Using generic upper bounds and constraints with type parameters for ParamSpec and TypeVarTuple
Mixing traditional and new-style type variables
Using traditional type variables in new-style type aliases
Examples:
from typing import Generic
class Example[T](Generic[T]): ... # Classes with type parameter list should not extend 'Generic'
class Example[T: (list[S], str)]: ... # Generic types are not allowed inside constraints and bounds of type parameters
from typing import TypeVar
K = TypeVar("K")
class ClassC[V]:
def method2[M](self, a: M, b: K) -> M | K: ... # Mixing traditional and new-style TypeVars is not allowed
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
PyNewStyleGenericSyntax
Inspection Details | |
---|---|
By default bundled with: | CLion 2024.3, IntelliJ IDEA 2024.3, PyCharm 2024.3, Qodana for JVM 2024.3, |
Can be installed with plugin: | Python Community Edition, 243.23126 |
Thanks for your feedback!