bad-version-info-order (PYI066)
Derived from the flake8-pyi linter.
This rule is unstable and in preview. The --preview
flag is required for use.
What it does
Checks for if-else statements with sys.version_info
comparisons that use
<
comparators.
Why is this bad?
As a convention, branches that correspond to newer Python versions should
come first when using sys.version_info
comparisons. This makes it easier
to understand the desired behavior, which typically corresponds to the
latest Python versions.
In preview, this rule will also flag non-stub files.
Example
import sys
if sys.version_info < (3, 10):
def read_data(x, *, preserve_order=True): ...
else:
def read_data(x): ...
Use instead: