PY-34617 Take into account sys.version_info checks when analyzing Python files

Support and, or, <=, > operators in version checks.

GitOrigin-RevId: 5006e88b0f7935d0bf0841dfd5fad5c371e8ff12
This commit is contained in:
Petr
2024-08-21 16:52:47 +02:00
committed by intellij-monorepo-bot
parent 0b8f4cc1e8
commit 79dc479c63
18 changed files with 420 additions and 254 deletions

View File

@@ -5,7 +5,7 @@ if sys.version_info < (4,):
if sys.version_info >= (3,):
def foo(self):
pass
elif sys.version_info <= (2, 5):
elif sys.version_info < (2, 5):
def bar(self):
pass
else:

View File

@@ -1,8 +0,0 @@
import sys
if True:
if sys.version_info >= (3,):
if sys.version_info < (3, 12):
foo = 23
else:
bar = -1

View File

@@ -0,0 +1,10 @@
import sys
if True:
if sys.version_info >= (3,):
if sys.version_info >= (3, 10) and sys.version_info < (3, 12):
foo = 23
if sys.version_info < (3, 11) and (sys.version_info < (3, 5) or sys.version_info > (3, 7)):
buz = 23
else:
bar = -1

View File

@@ -20,3 +20,6 @@ if condition1:
s = "x"
else:
i = 1
if (sys.version_info > (2, 1) and ((sys.version_info <= (2, 2) or sys.version_info > (3, )))):
qux = ""