Ruff sys-version-info0-eq3 (YTT201)

sys-version-info0-eq3 в Ruff проверяет сравнения на равенство с мажорной версией, возвращаемой через sys.version_info[0] (например, sys.version_info[0] == 3).

Почему это неправильно

Использование sys.version_info[0] == 3 для проверки, что основная версия Python является 3 или больше, не учитывает возможное увеличение номера основной версии (например, до Python 4). Это, скорее всего, непреднамеренно, поскольку код, использующий такое сравнение, предназначен для работы с Python 2, но при этом может выполняться на Python 4.

Вместо этого используйте оператор >=, чтобы проверить, что основная версия Python не меньше 3, что обеспечит корректную работу и при переходе на будущие версии.

Пример ошибки

import sys

if sys.version_info[0] == 3:
    ...
else:
    print("Python 2")  # Это будет выведено на Python 4.

Как правильно

import sys

if sys.version_info >= (3,):
    ...
else:
    print("Python 2")  # Это не будет выведено на Python 4.