sys-version-cmp-str3 (YTT103)#
Derived from the flake8-2020 linter.
What it does#
Checks for comparisons that test sys.version
against string literals,
such that the comparison will evaluate to False
on Python 3.10 or later.
Why is this bad?#
Comparing sys.version
to a string is error-prone and may cause subtle
bugs, as the comparison will be performed lexicographically, not
semantically. For example, sys.version > "3.9"
will evaluate to False
when using Python 3.10, as "3.10"
is lexicographically "less" than
"3.9"
.
Instead, use sys.version_info
to access the current major and minor
version numbers as a tuple, which can be compared to other tuples
without issue.
Example#
Use instead: