Python 2.6 is no more supported in compatibility inspection

Because 2.6 is not supported since 2019.1 in IDE.

GitOrigin-RevId: 3dee3e941c921ad3a5dc6d72cca840eb5d811691
This commit is contained in:
Semyon Proshev
2020-10-16 12:24:45 +00:00
committed by intellij-monorepo-bot
parent 0f948ef5f0
commit 00eb505497
26 changed files with 116 additions and 116 deletions
@@ -74,7 +74,7 @@ public class PyCompatibilityInspection extends PyInspection {
@NotNull
public static final List<LanguageLevel> SUPPORTED_LEVELS = StreamEx
.of(LanguageLevel.values())
.filter(v -> v.isPython2() && v.isAtLeast(LanguageLevel.PYTHON26) || v.isAtLeast(LanguageLevel.PYTHON35))
.filter(v -> v == LanguageLevel.PYTHON27 || v.isAtLeast(LanguageLevel.PYTHON35))
.toImmutableList();
@NotNull
@@ -4,14 +4,14 @@ def foo(*args, **kwargs):
foo(0,
*[1],
<warning descr="Python versions 2.6, 2.7 do not allow positional arguments after *expression">2</warning>,
<warning descr="Python versions 2.6, 2.7 do not allow duplicate *expressions">*[3]</warning>,
<warning descr="Python versions 2.6, 2.7 do not allow positional arguments after *expression">4</warning>,
<warning descr="Python version 2.7 does not allow positional arguments after *expression">2</warning>,
<warning descr="Python version 2.7 does not allow duplicate *expressions">*[3]</warning>,
<warning descr="Python version 2.7 does not allow positional arguments after *expression">4</warning>,
a='a',
<warning descr="Python versions 2.6, 2.7 do not allow duplicate *expressions">*[6]</warning>,
<warning descr="Python version 2.7 does not allow duplicate *expressions">*[6]</warning>,
b='b',
<warning descr="Python versions 2.6, 2.7 do not allow duplicate *expressions">*[7]</warning>,
<warning descr="Python version 2.7 does not allow duplicate *expressions">*[7]</warning>,
c='c',
**{'d': 'd'},
<warning descr="Python versions 2.6, 2.7 do not allow keyword arguments after **expression">e='e'</warning>,
<warning descr="Python versions 2.6, 2.7 do not allow duplicate **expressions">**{'f': 'f'}</warning>)
<warning descr="Python version 2.7 does not allow keyword arguments after **expression">e='e'</warning>,
<warning descr="Python version 2.7 does not allow duplicate **expressions">**{'f': 'f'}</warning>)
@@ -1,13 +1,13 @@
# Handle a matched regex
if (<warning descr="Python versions 2.6, 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">match := pattern.search(data)</warning>) is not None:
if (<warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">match := pattern.search(data)</warning>) is not None:
pass
# A loop that can't be trivially rewritten using 2-arg iter()
while <warning descr="Python versions 2.6, 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">chunk := file.read(8192)</warning>:
while <warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">chunk := file.read(8192)</warning>:
pass
# Reuse a value that's expensive to compute
[<warning descr="Python versions 2.6, 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">y := f(x)</warning>, y**2, y**3]
[<warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">y := f(x)</warning>, y**2, y**3]
# Share a subexpression between a comprehension filter clause and its output
filtered_data = [y for x in data if (<warning descr="Python versions 2.6, 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">y := f(x)</warning>) is not None]
filtered_data = [y for x in data if (<warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support assignment expressions">y := f(x)</warning>) is not None]
@@ -1,7 +1,7 @@
<warning descr="Python versions 2.6, 2.7 do not support this syntax">async</warning> def foo(x):
<warning descr="Python versions 2.6, 2.7 do not support this syntax">async</warning> with x:
y = <warning descr="Python versions 2.6, 2.7 do not support this syntax">await x</warning>
if <warning descr="Python versions 2.6, 2.7 do not support this syntax">await y</warning>:
return <warning descr="Python versions 2.6, 2.7 do not support this syntax">await z</warning>
<warning descr="Python versions 2.6, 2.7 do not support this syntax">async</warning> for y in x:
<warning descr="Python version 2.7 does not support this syntax">async</warning> def foo(x):
<warning descr="Python version 2.7 does not support this syntax">async</warning> with x:
y = <warning descr="Python version 2.7 does not support this syntax">await x</warning>
if <warning descr="Python version 2.7 does not support this syntax">await y</warning>:
return <warning descr="Python version 2.7 does not support this syntax">await z</warning>
<warning descr="Python version 2.7 does not support this syntax">async</warning> for y in x:
pass
@@ -1,6 +1,6 @@
<warning descr="Python versions 2.6, 2.7 do not support this syntax">async</warning> def asyncgen():
<warning descr="Python version 2.7 does not support this syntax">async</warning> def asyncgen():
<warning descr="Python version 3.5 does not support 'yield' inside async functions">yield 10</warning>
<warning descr="Python versions 2.6, 2.7 do not support this syntax">async</warning> def run():
<warning descr="Python version 2.7 does not support this syntax">async</warning> def run():
{i <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for i in asyncgen()}
[i <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for i in asyncgen()]
{i: i ** 2 <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for i in asyncgen()}
@@ -1,16 +1,16 @@
<warning descr="Python versions 2.6, 2.7 do not support this syntax">async</warning> def async2():
[<warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs]
{<warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs}
{fun: <warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs}
<warning descr="Python version 2.7 does not support this syntax">async</warning> def async2():
[<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs]
{<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs}
{fun: <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs}
[<warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs if <warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>]
{<warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs if <warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
{fun: <warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs if <warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
[<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>]
{<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
{fun: <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
[<warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs]
{<warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs}
{fun: <warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs}
[<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs]
{<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs}
{fun: <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs}
[<warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs if <warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>]
{<warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs if <warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
{fun: <warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs if <warning descr="Python versions 2.6, 2.7 do not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
[<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>]
{<warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
{fun: <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> fun()</warning> <warning descr="Python version 3.5 does not support 'async' inside comprehensions and generator expressions">async</warning> for fun in funcs if <warning descr="Python version 2.7 does not support this syntax"><warning descr="Python version 3.5 does not support 'await' inside comprehensions">await</warning> smth</warning>}
@@ -1,6 +1,6 @@
class A(B):
def __init__(self):
<warning descr="Python versions 2.6, 2.7 do not support this syntax. super() should have arguments in Python 2">super()</warning>
<warning descr="Python version 2.7 does not support this syntax. super() should have arguments in Python 2">super()</warning>
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not have method cmp">cmp()</warning>
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not have method reduce">reduce()</warning>
@@ -1,2 +1,2 @@
xs = {1: 2}
ys = {<warning descr="Python versions 2.6, 2.7 do not support starred expressions in dicts">**xs</warning>, 3: 4}
ys = {<warning descr="Python version 2.7 does not support starred expressions in dicts">**xs</warning>, 3: 4}
@@ -1,2 +1,2 @@
def foo():
<warning descr="Python versions 2.6, 2.7 do not support '...' outside of sequence slicings">...</warning>
<warning descr="Python version 2.7 does not support '...' outside of sequence slicings">...</warning>
@@ -1,3 +1,3 @@
import math
print(<warning descr="Python versions 2.6, 2.7, 3.5 do not support a 'F' prefix">f</warning>'{math.pi <warning descr="Python versions 2.6, 2.7, 3.5, 3.6, 3.7 do not support equality signs in f-strings">=</warning>:.2f}')
print(<warning descr="Python versions 2.6, 2.7, 3.5 do not support a 'F' prefix">f</warning>'{<warning descr="Python versions 2.6, 2.7, 3.5 do not support a 'F' prefix">f</warning>"{3.1415<warning descr="Python versions 2.6, 2.7, 3.5, 3.6, 3.7 do not support equality signs in f-strings">=</warning>:.1f}":*^20}')
print(<warning descr="Python versions 2.7, 3.5 do not support a 'F' prefix">f</warning>'{math.pi <warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support equality signs in f-strings">=</warning>:.2f}')
print(<warning descr="Python versions 2.7, 3.5 do not support a 'F' prefix">f</warning>'{<warning descr="Python versions 2.7, 3.5 do not support a 'F' prefix">f</warning>"{3.1415<warning descr="Python versions 2.7, 3.5, 3.6, 3.7 do not support equality signs in f-strings">=</warning>:.1f}":*^20}')
@@ -1,9 +1,9 @@
<warning descr="Python versions 2.6, 2.7, 3.5, 3.6, 3.7, 3.8 do not support arbitrary expressions as a decorator">@x[0][1]</warning>
<warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8 do not support arbitrary expressions as a decorator">@x[0][1]</warning>
@my_decorator
def say_whee():
print("Whee!")
<warning descr="Python versions 2.6, 2.7, 3.5, 3.6, 3.7, 3.8 do not support arbitrary expressions as a decorator">@foo[0].wrapper</warning>
<warning descr="Python versions 2.7, 3.5, 3.6, 3.7, 3.8 do not support arbitrary expressions as a decorator">@foo[0].wrapper</warning>
@foo.bar()
def say_whee():
print("Whee!")
@@ -1,4 +1,4 @@
import <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not have module Bastion">Bastion</warning>
from <warning descr="Python versions 2.6, 2.7 do not have module asyncio">asyncio</warning> import Queue
from <warning descr="Python version 2.7 does not have module asyncio">asyncio</warning> import Queue
from io import StringIO
@@ -1,3 +1,3 @@
<error descr="Python version 2.7 does not have module builtins"><warning descr="Python version 2.6 does not have module builtins">import builtins</warning></error>
<error descr="Python version 2.7 does not have module builtins">import builtins</error>
<warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not have module __builtin__">import __builtin__</warning>
@@ -1,2 +1,2 @@
x <warning descr="Python versions 2.6, 2.7 do not support matrix multiplication operators">@</warning> y
x <warning descr="Python versions 2.6, 2.7 do not support matrix multiplication operators">@=</warning> y
x <warning descr="Python version 2.7 does not support matrix multiplication operators">@</warning> y
x <warning descr="Python version 2.7 does not support matrix multiplication operators">@=</warning> y
@@ -1,2 +1,2 @@
<warning descr="Python versions 2.6, 2.7 do not support this syntax">raise exception from cause</warning>
<warning descr="Python version 2.7 does not support this syntax">raise exception from cause</warning>
a = 1
@@ -1,2 +1,2 @@
t = (1, <warning descr="Python versions 2.6, 2.7 do not support starred expressions in tuples, lists, and sets">*(2, 3)</warning>)
a, <warning descr="Python versions 2.6, 2.7 do not support starred expressions as assignment targets">*b</warning>, c = t
t = (1, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets">*(2, 3)</warning>)
a, <warning descr="Python version 2.7 does not support starred expressions as assignment targets">*b</warning>, c = t
@@ -2,22 +2,22 @@ a = u"String"
# Python 3.6
a = <error descr="Python version 2.7 does not support a 'F' prefix"><warning descr="Python versions 2.6, 3.5 do not support a 'F' prefix">f</warning></error>""
a = <error descr="Python version 2.7 does not support a 'F' prefix"><warning descr="Python versions 2.6, 3.5 do not support a 'F' prefix">F</warning></error>""
a = <error descr="Python version 2.7 does not support a 'RF' prefix"><warning descr="Python versions 2.6, 3.5 do not support a 'RF' prefix">rf</warning></error>""
a = <error descr="Python version 2.7 does not support a 'FR' prefix"><warning descr="Python versions 2.6, 3.5 do not support a 'FR' prefix">fr</warning></error>""
a = <error descr="Python version 2.7 does not support a 'FU' prefix"><warning descr="Python versions 2.6, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'FU' prefix">fu</warning></error>""
a = <error descr="Python version 2.7 does not support a 'UF' prefix"><warning descr="Python versions 2.6, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'UF' prefix">uf</warning></error>""
a = <error descr="Python version 2.7 does not support a 'BF' prefix"><warning descr="Python versions 2.6, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'BF' prefix">bf</warning></error>""
a = <error descr="Python version 2.7 does not support a 'FB' prefix"><warning descr="Python versions 2.6, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'FB' prefix">fb</warning></error>""
a = <error descr="Python version 2.7 does not support a 'UFR' prefix"><warning descr="Python versions 2.6, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'UFR' prefix">ufr</warning></error>""
a = <error descr="Python version 2.7 does not support a 'F' prefix"><warning descr="Python version 3.5 does not support a 'F' prefix">f</warning></error>""
a = <error descr="Python version 2.7 does not support a 'F' prefix"><warning descr="Python version 3.5 does not support a 'F' prefix">F</warning></error>""
a = <error descr="Python version 2.7 does not support a 'RF' prefix"><warning descr="Python version 3.5 does not support a 'RF' prefix">rf</warning></error>""
a = <error descr="Python version 2.7 does not support a 'FR' prefix"><warning descr="Python version 3.5 does not support a 'FR' prefix">fr</warning></error>""
a = <error descr="Python version 2.7 does not support a 'FU' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'FU' prefix">fu</warning></error>""
a = <error descr="Python version 2.7 does not support a 'UF' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'UF' prefix">uf</warning></error>""
a = <error descr="Python version 2.7 does not support a 'BF' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'BF' prefix">bf</warning></error>""
a = <error descr="Python version 2.7 does not support a 'FB' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'FB' prefix">fb</warning></error>""
a = <error descr="Python version 2.7 does not support a 'UFR' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'UFR' prefix">ufr</warning></error>""
# python 3.3
a = u""
a = r""
a = b""
a = <error descr="Python version 2.7 does not support a 'RB' prefix"><warning descr="Python version 2.6 does not support a 'RB' prefix">rb</warning></error>""
a = <error descr="Python version 2.7 does not support a 'RB' prefix">rb</error>""
a = br""
# python 3.2, 3.1
@@ -48,9 +48,9 @@ a = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support
# combined, PY-32321
b = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not allow to mix bytes and non-bytes literals">u"" b""</warning>
b = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not allow to mix bytes and non-bytes literals">r"" b""</warning>
b = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not allow to mix bytes and non-bytes literals"><error descr="Python version 2.7 does not support a 'F' prefix"><warning descr="Python versions 2.6, 3.5 do not support a 'F' prefix">f</warning></error>"" b""</warning>
b = <warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not allow to mix bytes and non-bytes literals"><error descr="Python version 2.7 does not support a 'F' prefix"><warning descr="Python version 3.5 does not support a 'F' prefix">f</warning></error>"" b""</warning>
# never was available
a = <error descr="Python version 2.7 does not support a 'RR' prefix"><warning descr="Python versions 2.6, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'RR' prefix">rr</warning></error>""
a = <error descr="Python version 2.7 does not support a 'BB' prefix"><warning descr="Python versions 2.6, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'BB' prefix">bb</warning></error>""
a = <error descr="Python version 2.7 does not support a 'UU' prefix"><warning descr="Python versions 2.6, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'UU' prefix">uu</warning></error>""
a = <error descr="Python version 2.7 does not support a 'RR' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'RR' prefix">rr</warning></error>""
a = <error descr="Python version 2.7 does not support a 'BB' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'BB' prefix">bb</warning></error>""
a = <error descr="Python version 2.7 does not support a 'UU' prefix"><warning descr="Python versions 3.5, 3.6, 3.7, 3.8, 3.9, 3.10 do not support a 'UU' prefix">uu</warning></error>""
@@ -2,5 +2,5 @@ def foo(*args, **kwargs):
print(args, kwargs)
foo(1, 2, 3, *[3]<error descr="Python version 3.4 does not allow a trailing comma after *expression"><warning descr="Python versions 2.6, 2.7 do not allow a trailing comma after *expression">,</warning></error>)
foo(1, 2, 3, *[3], **{'d': 'd'}<error descr="Python version 3.4 does not allow a trailing comma after **expression"><warning descr="Python versions 2.6, 2.7 do not allow a trailing comma after **expression">,</warning></error>)
foo(1, 2, 3, *[3]<error descr="Python version 3.4 does not allow a trailing comma after *expression"><warning descr="Python version 2.7 does not allow a trailing comma after *expression">,</warning></error>)
foo(1, 2, 3, *[3], **{'d': 'd'}<error descr="Python version 3.4 does not allow a trailing comma after **expression"><warning descr="Python version 2.7 does not allow a trailing comma after **expression">,</warning></error>)
@@ -1,4 +1,4 @@
try:
raise ValueError
finally:
<error descr="Python version 2.7 does not support this syntax. Raise with no arguments can only be used in an except block"><warning descr="Python version 2.6 does not support this syntax. Raise with no arguments can only be used in an except block">raise</warning></error>
<error descr="Python version 2.7 does not support this syntax. Raise with no arguments can only be used in an except block">raise</error>
@@ -1,4 +1,4 @@
try:
raise ValueError
finally:
<warning descr="Python versions 2.6, 2.7 do not support this syntax. Raise with no arguments can only be used in an except block">raise</warning>
<warning descr="Python version 2.7 does not support this syntax. Raise with no arguments can only be used in an except block">raise</warning>
@@ -1 +1 @@
import <warning descr="Python versions 2.6, 2.7 do not have module _bz2">_bz2</warning>
import <warning descr="Python version 2.7 does not have module _bz2">_bz2</warning>
@@ -1,58 +1,58 @@
# hex
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">0xCAFE_F00D</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">0xCAFE_F00D</warning>
# oct
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">0o1_23</warning>
<error descr="Python version 3.6 does not support this syntax. It requires '0o' prefix for octal literals"><warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals"><warning descr="Python versions 3.5, 3.7, 3.8, 3.9, 3.10 do not support this syntax. It requires '0o' prefix for octal literals">01_23</warning></warning></error>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">0o1_23</warning>
<error descr="Python version 3.6 does not support this syntax. It requires '0o' prefix for octal literals"><warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals"><warning descr="Python versions 3.5, 3.7, 3.8, 3.9, 3.10 do not support this syntax. It requires '0o' prefix for octal literals">01_23</warning></warning></error>
# bin
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">0b_0011_1111_0100_1110</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">0b_0011_1111_0100_1110</warning>
# dec
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_000_000</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_000_000</warning>
# pointfloat
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.</warning>
# exponentfloat
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23E1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.e1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.E1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23E1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.e1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.E1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e+1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23E+1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.e+1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.E+1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e+1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23E+1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.e+1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.E+1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e-1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23E-1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.e-1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.E-1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e-1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23E-1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.e-1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.E-1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_0000_23e1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_0000_23E1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00e1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00E1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23e1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23E1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00e1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00E1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_0000_23e+1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_0000_23E+1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00e+1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00E+1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23e+1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23E+1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00e+1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00E+1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_0000_23e-1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_0000_23E-1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00e-1_2</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00E-1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23e-1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_0000_23E-1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00e-1_2</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00E-1_2</warning>
# imag
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23j</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23J</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23j</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23J</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e1_2j</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e1_2J</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e1_2j</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_00.00_23e1_2J</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_000_000j</warning>
<warning descr="Python versions 2.6, 2.7, 3.5 do not support underscores in numeric literals">10_000_000J</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_000_000j</warning>
<warning descr="Python versions 2.7, 3.5 do not support underscores in numeric literals">10_000_000J</warning>
@@ -1,7 +1,7 @@
def gen(xs):
yield 42, <warning descr="Python versions 2.6, 2.7 do not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7 do not support unpacking without parentheses in yield statements">*xs</warning></warning>
<warning descr="Python versions 2.6, 2.7 do not support this syntax. Delegating to a subgenerator is available since Python 3.3; use explicit iteration over subgenerator instead.">yield from 42, <error descr="Can't use starred expression here"><warning descr="Python versions 2.6, 2.7 do not support starred expressions in tuples, lists, and sets">*xs</warning></error></warning>
yield 42, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7 do not support unpacking without parentheses in yield statements">*xs</warning></warning>
<warning descr="Python version 2.7 does not support this syntax. Delegating to a subgenerator is available since Python 3.3; use explicit iteration over subgenerator instead.">yield from 42, <error descr="Can't use starred expression here"><warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets">*xs</warning></error></warning>
def func(xs):
return 42, <warning descr="Python versions 2.6, 2.7 do not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7 do not support unpacking without parentheses in return statements">*xs</warning></warning>
return 42, <warning descr="Python version 2.7 does not support starred expressions in tuples, lists, and sets"><warning descr="Python versions 3.5, 3.6, 3.7 do not support unpacking without parentheses in return statements">*xs</warning></warning>
@@ -1,8 +1,8 @@
class C:
x<warning descr="Python versions 2.6, 2.7, 3.5 do not support variable annotations">: int</warning>
y<warning descr="Python versions 2.6, 2.7, 3.5 do not support variable annotations">: None</warning> = 42
x<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: int</warning>
y<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: None</warning> = 42
def m(self, d):
x<warning descr="Python versions 2.6, 2.7, 3.5 do not support variable annotations">: List[bool]</warning>
d['foo']<warning descr="Python versions 2.6, 2.7, 3.5 do not support variable annotations">: str</warning>
(d['bar'])<warning descr="Python versions 2.6, 2.7, 3.5 do not support variable annotations">: float</warning>
x<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: List[bool]</warning>
d['foo']<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: str</warning>
(d['bar'])<warning descr="Python versions 2.7, 3.5 do not support variable annotations">: float</warning>
@@ -1,5 +1,5 @@
<warning descr="Python versions 2.6, 2.7 do not support this syntax">async</warning> def foo(x):
<warning descr="Python versions 2.6, 2.7 do not support this syntax">await x</warning>
<warning descr="Python version 2.7 does not support this syntax">async</warning> def foo(x):
<warning descr="Python version 2.7 does not support this syntax">await x</warning>
<warning descr="Python version 3.5 does not support 'yield' inside async functions">yield x</warning>
<error descr="Python does not support 'yield from' inside async functions"><warning descr="Python versions 2.6, 2.7 do not support this syntax. Delegating to a subgenerator is available since Python 3.3; use explicit iteration over subgenerator instead.">yield from x</warning></error>
<error descr="Python does not support 'yield from' inside async functions"><warning descr="Python version 2.7 does not support this syntax. Delegating to a subgenerator is available since Python 3.3; use explicit iteration over subgenerator instead.">yield from x</warning></error>
<error descr="non-empty 'return' inside asynchronous generator"><warning descr="Python versions < 3.3 do not allow 'return' with argument inside generator.">return x</warning></error>
@@ -213,7 +213,7 @@ public class PyCompatibilityInspectionTest extends PyInspectionTestCase {
runWithLanguageLevel(
LanguageLevel.PYTHON38,
() -> doTestByText(
"def f(pos1, <warning descr=\"Python versions 2.6, 2.7, 3.5, 3.6, 3.7 do not support positional-only parameters\">/</warning>, pos_or_kwd, *, kwd1):\n" +
"def f(pos1, <warning descr=\"Python versions 2.7, 3.5, 3.6, 3.7 do not support positional-only parameters\">/</warning>, pos_or_kwd, *, kwd1):\n" +
" pass"
)
);
@@ -232,7 +232,7 @@ public class PyCompatibilityInspectionTest extends PyInspectionTestCase {
" try:\n" +
" print(\"a\")\n" +
" finally:\n" +
" <warning descr=\"Python versions 2.6, 2.7, 3.5, 3.6, 3.7 do not support 'continue' inside 'finally' clause\">continue</warning>")
" <warning descr=\"Python versions 2.7, 3.5, 3.6, 3.7 do not support 'continue' inside 'finally' clause\">continue</warning>")
);
}