typevar-name-incorrect-variance / C0105ΒΆ

Message emitted:

Type variable name does not reflect variance%s

Description:

Emitted when a TypeVar name doesn't reflect its type variance. According to PEP8, it is recommended to add suffixes '_co' and '_contra' to the variables used to declare covariant or contravariant behaviour respectively. Invariant (default) variables do not require a suffix. The message is also emitted when invariant variables do have a suffix.

Problematic code:

from typing import TypeVar

T_co = TypeVar("T_co")  # [typevar-name-incorrect-variance]

Correct code:

from typing import TypeVar

T = TypeVar("T")

Additional details:

When naming type vars, only use a _co suffix when indicating covariance or _contra when indicating contravariance.

Created by the basic checker.