§ x<ˆjêÉãó—dZddlmZddlmZddlmZmZm Z Gd„de¦«Z Gd„de¦«Z Gd „d e¦«Z Gd „d e¦«Z Gd „de¦«ZdS)z& Tests for various Pyflakes behavior. é)Ú version_info)Úmessages)ÚTestCaseÚskipÚskipIfcóš—eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d „Z"e#e$d!kd"¦«d#„¦«Z%d$„Z&d%„Z'd&„Z(d'„Z)d(„Z*d)„Z+e,d*¦«d+„¦«Z-d,„Z.d-„Z/d.„Z0d/„Z1d0„Z2d1„Z3d2„Z4d3„Z5d4„Z6d5„Z7d6„Z8d7„Z9d8„Z:d9S):ÚTestcóF—| dtj¦«dS)Nzdef fu(bar, bar): pass)ÚflakesÚmÚDuplicateArgument©Úselfs új/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/pyflakes/test/test_other.pyÚtest_duplicateArgszTest.test_duplicateArgs s €Ø � Š Ð,­aÔ.AÑBÔBÐBÐBÐBócó\—| dtjtj¦«dS)NzG a = 1 def f(): a; a=1 f() )r r ÚUndefinedLocalÚUnusedVariablers rÚ$test_localReferencedBeforeAssignmentz)Test.test_localReferencedBeforeAssignments4€Ø � Š ð õ Ô �qÔ/ñ  1ô 1ð 1ð 1ð 1rcóî—| d¦«| d¦«| dtj¦«| d¦«| d¦«dS)z_ Test that reusing a variable in a generator does not raise a warning. z8 a = 1 (1 for a, b in [(1, 2)]) zU class A: a = 1 list(1 for a, b in [(1, 2)]) zQ def f(): a = 1 (1 for a, b in [(1, 2)]) zK (1 for a, b in [(1, 2)]) (1 for a, b in [(1, 2)]) zY for a, b in [(1, 2)]: pass (1 for a, b in [(1, 2)]) N©r r rrs rÚtest_redefinedInGeneratorzTest.test_redefinedInGeneratoró¥€ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð õÔ ñ  ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð ð rcóî—| d¦«| d¦«| dtj¦«| d¦«| d¦«dS)zg Test that reusing a variable in a set comprehension does not raise a warning. z8 a = 1 {1 for a, b in [(1, 2)]} zQ class A: a = 1 {1 for a, b in [(1, 2)]} zQ def f(): a = 1 {1 for a, b in [(1, 2)]} zK {1 for a, b in [(1, 2)]} {1 for a, b in [(1, 2)]} zY for a, b in [(1, 2)]: pass {1 for a, b in [(1, 2)]} Nrrs rÚ test_redefinedInSetComprehensionz%Test.test_redefinedInSetComprehension5rrcóî—| d¦«| d¦«| dtj¦«| d¦«| d¦«dS)zh Test that reusing a variable in a dict comprehension does not raise a warning. z< a = 1 {1: 42 for a, b in [(1, 2)]} zU class A: a = 1 {1: 42 for a, b in [(1, 2)]} zU def f(): a = 1 {1: 42 for a, b in [(1, 2)]} zS {1: 42 for a, b in [(1, 2)]} {1: 42 for a, b in [(1, 2)]} z] for a, b in [(1, 2)]: pass {1: 42 for a, b in [(1, 2)]} Nrrs rÚ!test_redefinedInDictComprehensionz&Test.test_redefinedInDictComprehensionRrrcóF—| dtj¦«dS)zf Test that shadowing a function definition with another one raises a warning. z5 def a(): pass def a(): pass N©r r ÚRedefinedWhileUnusedrs rÚtest_redefinedFunctionzTest.test_redefinedFunctionos1€ð � Š ð õÔ #ñ %ô %ð %ð %ð %rcó0—| d¦«dS)zq Test that shadowing a function definition named with underscore doesn't raise anything. z5 def _(): pass def _(): pass N©r rs rÚ test_redefinedUnderscoreFunctionz%Test.test_redefinedUnderscoreFunctionyó)€ð � Š ð ñ ô ð ð ð rcóF—| dtj¦«dS)zQ Test that shadowing an underscore importation raises a warning. z; from .i18n import _ def _(): pass Nr rs rÚ#test_redefinedUnderscoreImportationz(Test.test_redefinedUnderscoreImportationƒó1€ð � Š ð õÔ #ñ %ô %ð %ð %ð %rcóF—| dtj¦«dS)zw Test that shadowing a function definition in a class suite with another one raises a warning. zN class A: def a(): pass def a(): pass Nr rs rÚtest_redefinedClassFunctionz Test.test_redefinedClassFunctionŒó1€ð � Š ð õÔ #ñ  %ô %ð %ð %ð %rcó0—| d¦«dS)z{ Test that shadowing a function definition twice in an if and else block does not raise a warning. z\ if True: def a(): pass else: def a(): pass Nr$rs rÚtest_redefinedIfElseFunctionz!Test.test_redefinedIfElseFunction—ó)€ð � Š ð ñ ô ð ð ð rcóF—| dtj¦«dS)zh Test that shadowing a function definition within an if block raises a warning. zN if True: def a(): pass def a(): pass Nr rs rÚtest_redefinedIfFunctionzTest.test_redefinedIfFunction£r,rcó0—| d¦«dS)z{ Test that shadowing a function definition twice in try and except block does not raise a warning. zZ try: def a(): pass except: def a(): pass Nr$rs rÚtest_redefinedTryExceptFunctionz$Test.test_redefinedTryExceptFunction®r/rcóF—| dtj¦«dS)zh Test that shadowing a function definition within a try block raises a warning. zk try: def a(): pass def a(): pass except: pass Nr rs rÚtest_redefinedTryFunctionzTest.test_redefinedTryFunctionºs1€ð � Š ð õ Ô #ñ  %ô %ð %ð %ð %rcó0—| d¦«dS)z‚ Test that shadowing a variable in a list comprehension in an if and else block does not raise a warning. zY if False: a = 1 else: [a for a in '12'] Nr$rs rÚtest_redefinedIfElseInListCompz#Test.test_redefinedIfElseInListCompÇr/rcó0—| d¦«dS)z‡ Test that shadowing a function definition with a decorated version of that function does not raise a warning. zi from somewhere import somedecorator def a(): pass a = somedecorator(a) Nr$rs rÚtest_functionDecoratorzTest.test_functionDecoratorÓr/rcó0—| d¦«dS)z˜ Test that shadowing a function definition in a class suite with a decorated version of that function does not raise a warning. zS class A: def a(): pass a = classmethod(a) Nr$rs rÚtest_classFunctionDecoratorz Test.test_classFunctionDecoratorßó)€ð � Š ð ñ ô ð ð ð rcó0—| d¦«dS)Nzî class A: @property def t(self): pass @t.setter def t(self, value): pass @t.deleter def t(self): pass r$rs rÚtest_modernPropertyzTest.test_modernPropertyês'€Ø � Š ð  ñ ô ð ð ð rcó0—| d¦«dS)zDon't die on unary +.z+1Nr$rs rÚtest_unaryPluszTest.test_unaryPlusøs€à � Š �DÑÔÐÐÐrcóF—| dtj¦«dS)zn If a name in the base list of a class definition is undefined, a warning is emitted. z2 class foo(foo): pass N©r r Ú UndefinedNamers rÚtest_undefinedBaseClasszTest.test_undefinedBaseClassüó0€ð � Š ð õŒ_ñ ô ð ð ð rcóF—| dtj¦«dS)z“ If a class name is used in the body of that class's definition and the name is not already defined, a warning is emitted. z, class foo: foo NrBrs rÚ"test_classNameUndefinedInClassBodyz'Test.test_classNameUndefinedInClassBodyrErcó0—| d¦«dS)z® If a class name is used in the body of that class's definition and the name was previously defined in some other way, no warning is emitted. z? foo = None class foo: foo Nr$rs rÚtest_classNameDefinedPreviouslyz$Test.test_classNameDefinedPreviouslys)€ð � Š ð ñ ô ð ð ð rcóF—| dtj¦«dS)zW If a class is defined twice in the same module, a warning is emitted. zQ class Foo: pass class Foo: pass Nr rs rÚtest_classRedefinitionzTest.test_classRedefinitionó1€ð � Š ð õ Ô #ñ  %ô %ð %ð %ð %rcóF—| dtj¦«dS)zN If a function is redefined as a class, a warning is emitted. zQ def Foo(): pass class Foo: pass Nr rs rÚtest_functionRedefinedAsClassz"Test.test_functionRedefinedAsClass'rLrcóF—| dtj¦«dS)zN If a class is redefined as a function, a warning is emitted. zQ class Foo: pass def Foo(): pass Nr rs rÚtest_classRedefinedAsFunctionz"Test.test_classRedefinedAsFunction2rLrcóF—| dtj¦«dS)zK If a return is used inside a class, a warning is emitted. z7 class Foo(object): return N©r r ÚReturnOutsideFunctionrs rÚtest_classWithReturnzTest.test_classWithReturn=s1€ð � Š ð õÔ $ñ &ô &ð &ð &ð &rcóF—| dtj¦«dS)zP If a return is used at the module level, a warning is emitted. z return NrRrs rÚtest_moduleWithReturnzTest.test_moduleWithReturnFs/€ð � Š ð å Ô $ñ &ô &ð &ð &ð &rcóF—| dtj¦«dS)zJ If a yield is used inside a class, a warning is emitted. z6 class Foo(object): yield N©r r ÚYieldOutsideFunctionrs rÚtest_classWithYieldzTest.test_classWithYieldNr)rcóF—| dtj¦«dS)zO If a yield is used at the module level, a warning is emitted. z yield NrXrs rÚtest_moduleWithYieldzTest.test_moduleWithYieldWó/€ð � Š ð å Ô #ñ %ô %ð %ð %ð %rcóF—| dtj¦«dS)zO If a yield from is used inside a class, a warning is emitted. zE class Foo(object): yield from range(10) NrXrs rÚtest_classWithYieldFromzTest.test_classWithYieldFrom_r)rcóF—| dtj¦«dS)zT If a yield from is used at the module level, a warning is emitted. z& yield from range(10) NrXrs rÚtest_moduleWithYieldFromzTest.test_moduleWithYieldFromhr]rcó†—| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«dS)Nz continue z/ def f(): continue zQ while True: pass else: continue z� while True: pass else: if 1: if 2: continue zK while True: def f(): continue zK while True: class A: continue )r r ÚContinueOutsideLooprs rÚtest_continueOutsideLoopzTest.test_continueOutsideLooppsæ€Ø � Š ð å Ô "ñ $ô $ð $ð � Š ð õÔ "ñ $ô $ð $ð � Š ð õ Ô "ñ  $ô $ð $ð � Š ð õÔ "ñ $ô $ð $ð � Š ð õÔ "ñ  $ô $ð $ð � Š ð õÔ "ñ  $ô $ð $ð $ð $rcó—| d¦«| d¦«| d¦«| d¦«| d¦«| d¦«dS)Nz2 while True: continue z: for i in range(10): continue zH while True: if 1: continue zP for i in range(10): if 1: continue z” while True: while True: pass else: continue else: pass z‘ while True: try: pass finally: while True: continue r$rs rÚtest_continueInsideLoopzTest.test_continueInsideLoop–s¸€Ø � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð ð r©ééúPython <= 3.8 onlycóÆ—| dtj¦«| dtj¦«| dtj¦«dS)Nzq while True: try: pass finally: continue z© while True: try: pass finally: if 1: if 2: continue zM try: pass finally: continue ©r r ÚContinueInFinallyrs rÚtest_continueInFinallyzTest.test_continueInFinallyÀs{€ð � Š ð õ Ô ñ  "ô "ð "ð � Š ð õÔ ñ "ô "ð "ð � Š ð õ Ô ñ  "ô "ð "ð "ð "rcóÆ—| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«dS)Nz break z, def f(): break zN while True: pass else: break z~ while True: pass else: if 1: if 2: break zH while True: def f(): break zH while True: class A: break zJ try: pass finally: break )r r ÚBreakOutsideLooprs rÚtest_breakOutsideLoopzTest.test_breakOutsideLoopÞs €Ø � Š ð å Ô ñ !ô !ð !ð � Š ð õÔ ñ !ô !ð !ð � Š ð õ Ô ñ  !ô !ð !ð � Š ð õÔ ñ !ô !ð !ð � Š ð õÔ ñ  !ô !ð !ð � Š ð õÔ ñ  !ô !ð !ð � Š ð õ Ô ñ  !ô !ð !ð !ð !rcóV—| d¦«| d¦«| d¦«| d¦«| d¦«| d¦«| d¦«| d¦«dS) Nz/ while True: break z7 for i in range(10): break zE while True: if 1: break zM for i in range(10): if 1: break z‘ while True: while True: pass else: break else: pass zŽ while True: try: pass finally: while True: break zn while True: try: pass finally: break z¦ while True: try: pass finally: if 1: if 2: break r$rs rÚtest_breakInsideLoopzTest.test_breakInsideLoop sò€Ø � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð ð rcó—| d¦«| d¦«| d¦«| d¦«| d¦«| d¦«dS)a# A default except block should be last. YES: try: ... except Exception: ... except: ... NO: try: ... except: ... except Exception: ... zS try: pass except ValueError: pass zt try: pass except ValueError: pass except: pass zH try: pass except: pass zr try: pass except ValueError: pass else: pass zg try: pass except: pass else: pass z“ try: pass except ValueError: pass except: pass else: pass Nr$rs rÚtest_defaultExceptLastzTest.test_defaultExceptLastGsº€ð, � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð  ñ ô ð ð ð rcó^—| dtj¦«| dtj¦«| dtj¦«| dtjtj¦«| dtj¦«| dtj¦«| dtj¦«| dtjtj¦«| d tj¦«| d tj¦«| d tj¦«| d tjtj¦«| d tj¦«| dtj¦«| dtj¦«| dtjtj¦«dS)Nzt try: pass except: pass except ValueError: pass zi try: pass except: pass except: pass z• try: pass except: pass except ValueError: pass except: pass zÁ try: pass except: pass except ValueError: pass except: pass except ValueError: pass z“ try: pass except: pass except ValueError: pass else: pass zˆ try: pass except: pass except: pass else: pass z´ try: pass except: pass except ValueError: pass except: pass else: pass zà try: pass except: pass except ValueError: pass except: pass except ValueError: pass else: pass z– try: pass except: pass except ValueError: pass finally: pass z‹ try: pass except: pass except: pass finally: pass z· try: pass except: pass except ValueError: pass except: pass finally: pass zã try: pass except: pass except ValueError: pass except: pass except ValueError: pass finally: pass zµ try: pass except: pass except ValueError: pass else: pass finally: pass zª try: pass except: pass except: pass else: pass finally: pass zÖ try: pass except: pass except ValueError: pass except: pass else: pass finally: pass a try: pass except: pass except ValueError: pass except: pass except ValueError: pass else: pass finally: pass )r r ÚDefaultExceptNotLastrs rÚtest_defaultExceptNotLastzTest.test_defaultExceptNotLast‘sn€Ø � Š ð õÔ #ñ %ô %ð %ð � Š ð õÔ #ñ %ô %ð %ð � Š ð  õÔ #ñ %ô %ð %ð � Š ð  õÔ #¥QÔ%;ñ =ô =ð =ð � Š ð  õÔ #ñ %ô %ð %ð � Š ð  õÔ #ñ %ô %ð %ð � Š ð  õÔ #ñ %ô %ð %ð � Š ð  õÔ #¥QÔ%;ñ =ô =ð =ð � Š ð  õÔ #ñ %ô %ð %ð � Š ð  õÔ #ñ %ô %ð %ð � Š ð  õÔ #ñ %ô %ð %ð � Š ð  õÔ #¥QÔ%;ñ =ô =ð =ð � Š ð  õÔ #ñ %ô %ð %ð � Š ð  õÔ #ñ %ô %ð %ð � Š ð  õÔ #ñ %ô %ð %ð � Š ð õÔ #¥QÔ%;ñ =ô =ð =ð =ð =rcó$—| d¦«| d¦«| d¦«| d¦«| d¦«| d¦«| d¦«| d¦«| d ¦«d  d „td ¦«D¦«¦«d z}| |¦«dd  d„td ¦«D¦«¦«zdz}| |¦«dd  d„td ¦«D¦«¦«zdz}| |¦«dS)z6 Python 3 extended iterable unpacking z# a, *b = range(10) z# *a, b = range(10) z& a, *b, c = range(10) z% (a, *b) = range(10) z% (*a, b) = range(10) z( (a, *b, c) = range(10) z% [a, *b] = range(10) z% [*a, b] = range(10) z( [a, *b, c] = range(10) ú, c3ó K—|] }d|zV—Œ dS©za%dN©©Ú.0Úis rú z5Test.test_starredAssignmentNoError..ƒó&èè€Ð;Ð; A�e˜a‘iÐ;Ð;Ð;Ð;Ð;Ð;ré€z, *rest = range(1<<8)ú(c3ó K—|] }d|zV—Œ dSr|r}r~s rr�z5Test.test_starredAssignmentNoError..‡ó&èè€ÐAÐA¨!˜E A™IÐAÐAÐAÐAÐAÐArz, *rest) = range(1<<8)ú[c3ó K—|] }d|zV—Œ dSr|r}r~s rr�z5Test.test_starredAssignmentNoError..‹r†rz, *rest] = range(1<<8)N)r ÚjoinÚrange©rÚss rÚtest_starredAssignmentNoErrorz"Test.test_starredAssignmentNoErrorZsÔ€ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð �IŠIÐ;Ð;­¨zÑ):Ô):Ð;Ñ;Ô;Ñ ;Ô ;Ø #ñ $ˆà � Š �A‰Œˆà �$—)’)ÐAÐA­u°ZÑ/@Ô/@ÐAÑAÔAÑAÔAÑ AØ $ñ %ˆà � Š �A‰Œˆà �$—)’)ÐAÐA­u°ZÑ/@Ô/@ÐAÑAÔAÑAÔAÑ AØ $ñ %ˆà � Š �A‰Œˆˆˆrcó—d d„td¦«D¦«¦«dz}| |tj¦«dd d„td¦«D¦«¦«zdz}| |tj¦«dd d „td¦«D¦«¦«zd z}| |tj¦«d d „td ¦«D¦«¦«d z}| |tj¦«dd d„td ¦«D¦«¦«zdz}| |tj¦«dd d„td ¦«D¦«¦«zdz}| |tj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«dS)zp SyntaxErrors (not encoded in the ast) surrounding Python 3 extended iterable unpacking rzc3ó K—|] }d|zV—Œ dSr|r}r~s rr�z4Test.test_starredAssignmentErrors..•s&èè€Ð7Ð7 A�e˜a‘iÐ7Ð7Ð7Ð7Ð7Ð7réz, *rest = range(1<<8 + 1)r„c3ó K—|] }d|zV—Œ dSr|r}r~s rr�z4Test.test_starredAssignmentErrors..™ó&èè€Ð=Ð=¨!˜E A™IÐ=Ð=Ð=Ð=Ð=Ð=rz, *rest) = range(1<<8 + 1)r‡c3ó K—|] }d|zV—Œ dSr|r}r~s rr�z4Test.test_starredAssignmentErrors..�r’rz, *rest] = range(1<<8 + 1)c3ó K—|] }d|zV—Œ dSr|r}r~s rr�z4Test.test_starredAssignmentErrors..¡r‚riz, *rest = range(1<<8 + 2)c3ó K—|] }d|zV—Œ dSr|r}r~s rr�z4Test.test_starredAssignmentErrors..¥r†rz, *rest) = range(1<<8 + 2)c3ó K—|] }d|zV—Œ dSr|r}r~s rr�z4Test.test_starredAssignmentErrors..©r†rz, *rest] = range(1<<8 + 2)z' a, *b, *c = range(10) z* a, *b, c, *d = range(10) z( *a, *b, *c = range(10) z) (a, *b, *c) = range(10) z, (a, *b, c, *d) = range(10) z* (*a, *b, *c) = range(10) z) [a, *b, *c] = range(10) z, [a, *b, c, *d] = range(10) z* [*a, *b, *c] = range(10) N)r‰rŠr r Ú%TooManyExpressionsInStarredAssignmentÚTwoStarredExpressionsr‹s rÚtest_starredAssignmentErrorsz!Test.test_starredAssignmentErrors�s€ð �IŠIÐ7Ð7­¨v©¬Ð7Ñ7Ô7Ñ 7Ô 7Ø 'ñ (ˆà � Š �A•qÔ>Ñ?Ô?Ð?à �$—)’)Ð=Ð=­u°V©}¬}Ð=Ñ=Ô=Ñ=Ô=Ñ =Ø (ñ )ˆà � Š �A•qÔ>Ñ?Ô?Ð?à �$—)’)Ð=Ð=­u°V©}¬}Ð=Ñ=Ô=Ñ=Ô=Ñ =Ø (ñ )ˆà � Š �A•qÔ>Ñ?Ô?Ð?à �IŠIÐ;Ð;­¨zÑ):Ô):Ð;Ñ;Ô;Ñ ;Ô ;Ø 'ñ (ˆà � Š �A•qÔ>Ñ?Ô?Ð?à �$—)’)ÐAÐA­u°ZÑ/@Ô/@ÐAÑAÔAÑAÔAÑ AØ (ñ )ˆà � Š �A•qÔ>Ñ?Ô?Ð?à �$—)’)ÐAÐA­u°ZÑ/@Ô/@ÐAÑAÔAÑAÔAÑ AØ (ñ )ˆà � Š �A•qÔ>Ñ?Ô?Ð?ð � Š ð å Ô $ñ &ô &ð &ð � Š ð å Ô $ñ &ô &ð &ð � Š ð å Ô $ñ &ô &ð &ð � Š ð å Ô $ñ &ô &ð &ð � Š ð å Ô $ñ &ô &ð &ð � Š ð å Ô $ñ &ô &ð &ð � Š ð å Ô $ñ &ô &ð &ð � Š ð å Ô $ñ &ô &ð &ð � Š ð å Ô $ñ &ô &ð &ð &ð &rz= y x > y Nr$rs rÚtest_comparisonzTest.test_comparison÷s)€ð � Š ð  ñ ô ð ð ð rcó0—| d¦«dS)zn If a defined name is used on either side of an identity test, no warning is emitted. zI x = 10 y = 20 x is y x is not y Nr$rs rÚ test_identityzTest.test_identityr/rcó0—| d¦«dS)zp If a defined name is used on either side of a containment test, no warning is emitted. zI x = 10 y = 20 x in y x not in y Nr$rs rÚtest_containmentzTest.test_containmentr/rcóZ—| d¦«| d¦«dS)z> break and continue statements are supported. z4 for x in [1, 2]: break z7 for x in [1, 2]: continue Nr$rs rÚtest_loopControlzTest.test_loopControlsF€ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð ð rcó0—| d¦«dS)z3 Ellipsis in a slice is supported. z [1, 2][...] Nr$rs rÚ test_ellipsiszTest.test_ellipsis,ó)€ð � Š ð ñ ô ð ð ð rcó0—| d¦«dS)z0 Extended slices are supported. z+ x = 3 [1, 2][x,:] Nr$rs rÚtest_extendedSlicezTest.test_extendedSlice4ó)€ð � Š ð ñ ô ð ð ð rcó0—| d¦«dS)zh Augmented assignment of a variable is supported. We don't care about var refs. z* foo = 0 foo += 1 Nr$rs rÚtest_varAugmentedAssignmentz Test.test_varAugmentedAssignment=r&rcó0—| d¦«dS)zi Augmented assignment of attributes is supported. We don't care about attr refs. z7 foo = None foo.bar += foo.baz Nr$rs rÚtest_attrAugmentedAssignmentz!Test.test_attrAugmentedAssignmentGr&rcó0—| d¦«dS)zP A 'global' can be declared in one scope and reused in another. zV def f(): global foo def g(): foo = 'anything'; foo.is_used() Nr$rs rÚ#test_globalDeclaredInDifferentScopez(Test.test_globalDeclaredInDifferentScopeQr­rcó®—| d¦«| d¦«| d¦«| d¦«dS)z; Test to traverse ARG and ARGUMENT handler z1 def foo(a, b): pass z6 def foo(a, b, c=0): pass z= def foo(a, b, c=0, *args): pass zG def foo(a, b, c=0, *args, **kwargs): pass Nr$rs rÚtest_function_argumentszTest.test_function_argumentsZs€€ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð ð rcó0—| d¦«dS)NzL def foo(a, b, c=0, *args, d=0, **kwargs): pass r$rs rÚtest_function_arguments_python3z$Test.test_function_arguments_python3ró'€Ø � Š ð ñ ô ð ð ð rN);Ú__name__Ú __module__Ú __qualname__rrrrrr"r%r(r+r.r1r3r5r7r9r;r>r@rDrGrIrKrNrPrTrVrZr\r_rardrfrrrnrqrsrurxr�r™rr›r�rŸr¡r£r¥r§r©r¬r¯r±r³rµr·r}rrr r s{€€€€€ðCðCðCð1ð1ð1ð ð ð ð: ð ð ð: ð ð ð:%ð%ð%ð ð ð ð%ð%ð%ð %ð %ð %ð  ð  ð  ð %ð %ð %ð  ð  ð  ð %ð %ð %ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ðððððððððð  ð  ð  ð %ð %ð %ð %ð %ð %ð %ð %ð %ð&ð&ð&ð&ð&ð&ð%ð%ð%ð%ð%ð%ð%ð%ð%ð%ð%ð%ð$$ð$$ð$$ðL( ð( ð( ðT €VˆL˜6Ò !Ð#7Ñ8Ô8ð"ð"ñ9Ô8ð"ð:+!ð+!ð+!ðZ: ð: ð: ðxH ðH ðH ðTG=ðG=ðG=ðR3ð3ð3ðjE&ðE&ðE&ðN €TÐ HÑIÔIð%ð%ñJÔIð%ð  ð  ð  ð  ð  ð  ð ð ð ð  ð  ð  ð  ð  ð  ð  ð  ð  ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð0 ð ð ð ð rr có(—eZdZdZd„Zd„Zd„Zd„Zed¦«d„¦«Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d „Z"d!„Z#d"„Z$d#„Z%d$„Z&d%„Z'd&„Z(d'„Z)d(„Z*d)„Z+e,e-d*kd+¦«d,„¦«Z.d-„Z/d.„Z0d/„Z1d0„Z2d1„Z3d2„Z4d3„Z5d4„Z6d5„Z7d6„Z8d7„Z9e,e-d8kd9¦«d:„¦«Z:e,e-d8kd9¦«d;„¦«Z;e,e-d8kd9¦«d<„¦«ZÚTestUnusedAssignmentz5 Tests for warning about unused assignments. cóF—| dtj¦«dS)zc Warn when a variable in a function is assigned a value that's never used. z, def a(): b = 1 Nrrs rÚtest_unusedVariablez(TestUnusedAssignment.test_unusedVariable~s1€ð � Š ð õÔ ñ ô ð ð ð rcó0—| d¦«dS)zh Don't warn when the magic "_" (underscore) variable is unused. See issue #202. zC def a(unused_param): _ = unused_param Nr$rs rÚtest_unusedUnderscoreVariablez2TestUnusedAssignment.test_unusedUnderscoreVariableˆr&rcó0—| d¦«dS)zO Using locals() it is perfectly valid to have unused variables zH def a(): b = 1 return locals() Nr$rs rÚtest_unusedVariableAsLocalsz0TestUnusedAssignment.test_unusedVariableAsLocals’ó)€ð � Š ð ñ ô ð ð ð rcóF—| dtj¦«dS)zA Using locals() in wrong scope should not matter zq def a(): locals() def a(): b = 1 return Nrrs rÚtest_unusedVariableNoLocalsz0TestUnusedAssignment.test_unusedVariableNoLocalsœs1€ð � Š ð õ Ô ñ  ô ð ð ð rzAtodo: Difficult because it doesn't apply in the context of a loopcóF—| dtj¦«dS)zV Shadowing a used variable can still raise an UnusedVariable warning. zR def a(): b = 1 b.foo() b = 2 Nrrs rÚtest_unusedReassignedVariablez2TestUnusedAssignment.test_unusedReassignedVariable¨s1€ð � Š ð õ Ô ñ  ô ð ð ð rcó0—| d¦«dS)zt Shadowing a used variable cannot raise an UnusedVariable warning in the context of a loop. z^ def a(): b = True while b: b = False Nr$rs rÚtest_variableUsedInLoopz,TestUnusedAssignment.test_variableUsedInLoop´r/rcó0—| d¦«dS)z— Assigning to a global and then not using that global is perfectly acceptable. Do not mistake it for an unused local variable. zO b = 0 def a(): global b b = 1 Nr$rs rÚtest_assignToGlobalz(TestUnusedAssignment.test_assignToGlobalÀr/rcó0—| d¦«dS)zš Assigning to a nonlocal and then not using that binding is perfectly acceptable. Do not mistake it for an unused local variable. zW b = b'0' def a(): nonlocal b b = b'1' Nr$rs rÚtest_assignToNonlocalz*TestUnusedAssignment.test_assignToNonlocalÌr/rcó0—| d¦«dS)zº Assigning to a member of another object and then not using that member variable is perfectly acceptable. Do not mistake it for an unused local variable. zR class b: pass def a(): b.foo = 1 Nr$rs rÚtest_assignToMemberz(TestUnusedAssignment.test_assignToMemberØó)€ð � Š ð ñ ô ð ð ð rcó0—| d¦«dS)zW Don't warn when a variable in a for loop is assigned to but not used. zO def f(): for i in range(10): pass Nr$rs rÚtest_assignInForLoopz)TestUnusedAssignment.test_assignInForLoopçrÄrcó0—| d¦«dS)zi Don't warn when a variable in a list comprehension is assigned to but not used. z@ def f(): [None for i in range(10)] Nr$rs rÚtest_assignInListComprehensionz3TestUnusedAssignment.test_assignInListComprehensionñr&rcó0—| d¦«dS)zk Don't warn when a variable in a generator expression is assigned to but not used. z@ def f(): (None for i in range(10)) Nr$rs rÚtest_generatorExpressionz-TestUnusedAssignment.test_generatorExpressionûr&rcó0—| d¦«dS)zW Don't warn when a variable assignment occurs lexically after its use. z  def f(): x = None for i in range(10): if i > 2: return x x = i * 2 Nr$rs rÚtest_assignmentInsideLoopz.TestUnusedAssignment.test_assignmentInsideLoops)€ð � Š ð ñ ô ð ð ð rcó0—| d¦«| dtjtj¦«| d¦«| dtj¦«| dtj¦«dS)zñ Don't warn when a variable included in tuple unpacking is unused. It's very common for variables in a tuple unpacking assignment to be unused in good Python code, so warning will only create false positives. z6 def f(tup): (x, y) = tup z4 def f(): (x, y) = 1, 2 zq def f(): (x, y) = coords = 1, 2 if x > 1: print(coords) z= def f(): (x, y) = coords = 1, 2 z= def f(): coords = (x, y) = 1, 2 Nrrs rÚtest_tupleUnpackingz(TestUnusedAssignment.test_tupleUnpackingsº€ð � Š ð ñ ô ð ð � Š ð õÔ �qÔ/ñ 1ô 1ð 1ð � Š ð ñ ô ð ð � Š ð õÔ ñ ô ð ð � Š ð õÔ ñ ô ð ð ð rcó†—| d¦«| dtjtj¦«dS)zR Don't warn when a variable included in list unpacking is unused. z6 def f(tup): [x, y] = tup z6 def f(): [x, y] = [1, 2] Nrrs rÚtest_listUnpackingz'TestUnusedAssignment.test_listUnpacking/sS€ð � Š ð ñ ô ð ð � Š ð õÔ �qÔ/ñ 1ô 1ð 1ð 1ð 1rcó0—| d¦«dS)zN Don't warn when the assignment is used in an inner function. z~ def barMaker(): foo = 5 def bar(): return foo return bar Nr$rs rÚtest_closedOverz$TestUnusedAssignment.test_closedOver<s)€ð � Š ð ñ ô ð ð ð rcó0—| d¦«dS)z’ Don't warn when the assignment is used in an inner function, even if that inner function itself is in an inner function. z� def barMaker(): foo = 5 def bar(): def baz(): return foo return bar Nr$rs rÚtest_doubleClosedOverz*TestUnusedAssignment.test_doubleClosedOverHs)€ð � Š ð ñ ô ð ð ð rcó0—| d¦«dS)z} Do not warn about unused local variable __tracebackhide__, which is a special variable for py.test. zL def helper(): __tracebackhide__ = True Nr$rs rÚ!test_tracebackhideSpecialVariablez6TestUnusedAssignment.test_tracebackhideSpecialVariableVr&rcó°—| d¦«| dtj¦«| dtj¦«dS)z9 Test C{foo if bar else baz} statements. za = 'moo' if True else 'oink'za = foo if True else 'oink'za = 'moo' if True else barNrBrs rÚ test_ifexpzTestUnusedAssignment.test_ifexp`sK€ð � Š Ð3Ñ4Ô4Ð4Ø � Š Ð1µ1´?ÑCÔCÐCØ � Š Ð0µ!´/ÑBÔBÐBÐBÐBrcóÚ—| d¦«| d¦«| dtj¦«| dtj¦«dS)z/ Test C{if (foo,)} conditions. z if (): passzC if ( True ): pass zD if ( True, ): pass z? x = 1 if ( True, ) else 2 N)r r ÚIfTuplers rÚ test_if_tuplez"TestUnusedAssignment.test_if_tuplehs„€ð � Š Ð%Ñ&Ô&Ð&Ø � Š ð ñ ô ð ð � Š ð õ ŒYñ  ô ð ð � Š ð õŒYñ  ô ð ð ð rcó0—| d¦«dS)zƒ No warnings are emitted for using inside or after a nameless C{with} statement a name defined beforehand. zR bar = None with open("foo"): bar bar Nr$rs rÚtest_withStatementNoNamesz.TestUnusedAssignment.test_withStatementNoNamesr/rcó0—| d¦«dS)z� No warnings are emitted for using a name defined by a C{with} statement within the suite or afterwards. zF with open('foo') as bar: bar bar Nr$rs rÚtest_withStatementSingleNamez1TestUnusedAssignment.test_withStatementSingleName‹r<rcó0—| d¦«dS)zn No warnings are emitted for using an attribute as the target of a C{with} statement. zR import foo with open('foo') as foo.bar: pass Nr$rs rÚtest_withStatementAttributeNamez4TestUnusedAssignment.test_withStatementAttributeName–r<rcó0—| d¦«dS)zm No warnings are emitted for using a subscript as the target of a C{with} statement. zQ import foo with open('foo') as foo[0]: pass Nr$rs rÚtest_withStatementSubscriptz0TestUnusedAssignment.test_withStatementSubscript¡r<rcóF—| dtj¦«dS)z‰ An undefined name warning is emitted if the subscript used as the target of a C{with} statement is not defined. zS import foo with open('foo') as foo[bar]: pass NrBrs rÚ$test_withStatementSubscriptUndefinedz9TestUnusedAssignment.test_withStatementSubscriptUndefined¬ó0€ð � Š ð õŒ_ñ  ô ð ð ð rcó0—| d¦«dS)z” No warnings are emitted for using any of the tuple of names defined by a C{with} statement within the suite or afterwards. zW with open('foo') as (bar, baz): bar, baz bar, baz Nr$rs rÚtest_withStatementTupleNamesz1TestUnusedAssignment.test_withStatementTupleNames·r<rcó0—| d¦«dS)z“ No warnings are emitted for using any of the list of names defined by a C{with} statement within the suite or afterwards. zW with open('foo') as [bar, baz]: bar, baz bar, baz Nr$rs rÚtest_withStatementListNamesz0TestUnusedAssignment.test_withStatementListNamesÂr<rcó0—| d¦«dS)aq If the target of a C{with} statement uses any or all of the valid forms for that part of the grammar (See U{http://docs.python.org/reference/compound_stmts.html#the-with-statement}), the names involved are checked both for definedness and any bindings created are respected in the suite of the statement and afterwards. z© c = d = e = g = h = i = None with open('foo') as [(a, b), c[d], e.f, g[h:i]]: a, b, c, d, e, g, h, i a, b, c, d, e, g, h, i Nr$rs rÚ#test_withStatementComplicatedTargetz8TestUnusedAssignment.test_withStatementComplicatedTargetÍrÑrcóF—| dtj¦«dS)z• An undefined name warning is emitted if the name first defined by a C{with} statement is used before the C{with} statement. zG bar with open('foo') as bar: pass NrBrs rÚ%test_withStatementSingleNameUndefinedz:TestUnusedAssignment.test_withStatementSingleNameUndefinedÜrórcóF—| dtj¦«dS)z¹ An undefined name warning is emitted if a name first defined by the tuple-unpacking form of the C{with} statement is used before the C{with} statement. zN baz with open('foo') as (bar, baz): pass NrBrs rÚ%test_withStatementTupleNamesUndefinedz:TestUnusedAssignment.test_withStatementTupleNamesUndefinedçs0€ð � Š ð õŒ_ñ  ô ð ð ð rcóF—| dtj¦«dS)z‘ A redefined name warning is emitted if a name bound by an import is rebound by the name defined by a C{with} statement. zN import bar with open('foo') as bar: pass Nr rs rÚ%test_withStatementSingleNameRedefinedz:TestUnusedAssignment.test_withStatementSingleNameRedefinedór,rcóF—| dtj¦«dS)z½ A redefined name warning is emitted if a name bound by an import is rebound by one of the names defined by the tuple-unpacking form of a C{with} statement. zU import bar with open('foo') as (bar, baz): pass Nr rs rÚ%test_withStatementTupleNamesRedefinedz:TestUnusedAssignment.test_withStatementTupleNamesRedefinedþs1€ð � Š ð õÔ #ñ  %ô %ð %ð %ð %rcóF—| dtj¦«dS)z’ An undefined name warning is emitted if a name is used inside the body of a C{with} statement without first being bound. z: with open('foo') as bar: baz NrBrs rÚ!test_withStatementUndefinedInsidez6TestUnusedAssignment.test_withStatementUndefinedInside rErcó0—| d¦«dS)z| A name defined in the body of a C{with} statement can be used after the body ends without warning. zK with open('foo') as bar: baz = 10 baz Nr$rs rÚ#test_withStatementNameDefinedInBodyz8TestUnusedAssignment.test_withStatementNameDefinedInBodyr<rcó†—| dtj¦«| dtj¦«dS)z‡ An undefined name warning is emitted if a name in the I{test} expression of a C{with} statement is undefined. z3 with bar as baz: pass z3 with bar as bar: pass NrBrs rÚ'test_withStatementUndefinedInExpressionz assert (False, 'x') assert (False, ) N)r r Ú AssertTuplers rÚtest_assert_tuplez&TestUnusedAssignment.test_assert_tuple“s2€à � Š ð õŒ]�AœMñ +ô +ð +ð +ð +rcó0—| d¦«dS)z,An assert of an empty tuple is always False.z assert () Nr$rs rÚtest_assert_tuple_emptyz,TestUnusedAssignment.test_assert_tuple_emptyšs'€à � Š ð ñ ô ð ð ð rcó0—| d¦«dS)z,An assert of a static value is not an error.z. assert True assert 1 Nr$rs rÚtest_assert_staticz'TestUnusedAssignment.test_assert_static rrcóF—| dtj¦«dS)z. Test C{yield from} statement z9 def bar(): yield from foo() NrBrs rÚtest_yieldFromUndefinedz,TestUnusedAssignment.test_yieldFromUndefined§s0€ð � Š ð õŒ_ñ ô ð ð ð rcó0—| d¦«dS)z.Test PEP 498 f-strings are treated as a usage.z3 baz = 0 print(f'{4*baz}') Nr$rs rÚ test_f_stringz"TestUnusedAssignment.test_f_string°rrrgznew in Python 3.8có0—| d¦«dS)zATest PEP 572 assignment expressions are treated as usage / write.zJ from foo import y print(x := y) print(x) Nr$rs rÚtest_assign_exprz%TestUnusedAssignment.test_assign_expr·ó)€ð � Š ð ñ ô ð ð ð rcó0—| d¦«dS)z5Test assignment expressions in generator expressions.zO if (any((y := x[0]) for x in [[True]])): print(y) Nr$rs rÚ test_assign_expr_generator_scopez5TestUnusedAssignment.test_assign_expr_generator_scopeÀs)€ð � Š ð ñ ô ð ð ð rcó0—| d¦«dS)z2Test assignment expressions in nested expressions.zz if ([(y:=x) for x in range(4) if [(z:=q) for q in range(4)]]): print(y) print(z) Nr$rs rÚtest_assign_expr_nestedz,TestUnusedAssignment.test_assign_expr_nestedÈr-rN)=r¹rºr»Ú__doc__r¿rÁrÃrÆrrÈrÊrÌrÎrÐrÓrÕr×rÙrÛrÝrßrárãrårèrêrìrîrðròrõr÷rùrûrýrÿrrrrr r r rrrrrrrrrrr"r$r&r(r*r,r/r1r}rrr½r½ysà€€€€€ðððððð ð ð ð ð ð ð ð ð ð €TÐ MÑNÔNð ð ñOÔNð ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð ð ð ð ð ð ð ð ð ð  ð  ð  ðððð: 1ð 1ð 1ð  ð  ð  ð  ð  ð  ð ð ð ðCðCðCðððð.  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð  ð ð ð ð  ð  ð  ð  ð  ð  ð  ð  ð  ð ð ð ð ð ð ð %ð %ð %ð %ð %ð %ðððð  ð  ð  ð ð ð ð ð ð ð ð ð ð  ð  ð  ðððð  €VˆL˜7Ò "Ð$8Ñ9Ô9ððñ:Ô9ððððð  ð  ð  ð  ð  ð  ð  ð  ð  ð ð ð ð ð ð ð+ð+ð+ð ð ð ð  ð ð ðððð ð ð ð €VˆL˜6Ò !Ð#6Ñ7Ô7ð ð ñ8Ô7ð ð €VˆL˜6Ò !Ð#6Ñ7Ô7ð ð ñ8Ô7ð ð €VˆL˜6Ò !Ð#6Ñ7Ô7ð ð ñ8Ô7ð ð ð rr½có&—eZdZd„Zd„Zd„Zd„ZdS)ÚTestStringFormattingcó„—| dtj¦«| dtj¦«| dtj¦«| dtj¦«| d¦«| d¦«| d¦«dS)Nzf'foo'z= f"""foo bar """ zX print( f'foo' f'bar' ) zf'{{}}'z5 x = 5 print(f'{x}') z? x = 'a' * 90 print(f'{x:.8}') zC x = y = 5 print(f'{x:>2} {y:>2}') )r r ÚFStringMissingPlaceholdersrs rÚ"test_f_string_without_placeholdersz7TestStringFormatting.test_f_string_without_placeholdersÔsÙ€Ø � Š �H�aÔ:Ñ;Ô;Ð;Ø � Š ð õÔ )ñ  +ô +ð +ð � Š ð õ Ô )ñ  +ô +ð +ð � Š �I�qÔ;Ñ<Ô<Ð<à � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð ð rcól—| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| d tj¦«| d ¦«| d ¦«| d ¦«| d ¦«| d¦«| d¦«| d¦«dS)Nz# '{'.format(1) z+ '{} {1}'.format(1, 2) z+ '{0} {}'.format(1, 2) z' '{}'.format(1, 2) z+ '{}'.format(1, bar=2) z' '{} {}'.format(1) z$ '{2}'.format() z& '{bar}'.format() z0 '{:{:{}}}'.format(1, 2, 3) z'{.__class__}'.format('')z('{foo[bar]}'.format(foo={'bar': 'barv'})z8 print('{:{}} {}'.format(1, 15, 2)) z- print('{:2}'.format(1)) z1 '{foo}-{}'.format(1, foo=2) z8 a = () "{}".format(*a) z< k = {} "{foo}".format(**k) )r r ÚStringDotFormatInvalidFormatÚStringDotFormatMixingAutomaticÚ'StringDotFormatExtraPositionalArgumentsÚ"StringDotFormatExtraNamedArgumentsÚStringDotFormatMissingArgumentrs rÚtest_invalid_dot_format_callsz2TestStringFormatting.test_invalid_dot_format_callsósü€Ø � Š ð å Ô +ñ -ô -ð -ð � Š ð å Ô -ñ /ô /ð /ð � Š ð å Ô -ñ /ô /ð /ð � Š ð å Ô 6ñ 8ô 8ð 8ð � Š ð å Ô 1ñ 3ô 3ð 3ð � Š ð å Ô -ñ /ô /ð /ð � Š ð å Ô -ñ /ô /ð /ð � Š ð å Ô -ñ /ô /ð /ð � Š ð å Ô +ñ -ô -ð -ð � Š Ð/Ñ0Ô0Ð0Ø � Š Ð>Ñ?Ô?Ð?à � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð ð rcón—| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| dtj¦«| d tj¦«| d tj ¦«| d tj ¦«| d ¦«| d ¦«| d¦«| d¦«dS)Nz/ '%(foo)' % {'foo': 'bar'} z3 '%s %(foo)s' % {'foo': 'bar'} z3 '%(foo)s %s' % {'foo': 'bar'} z! '%j' % (1,) z$ '%s %s' % (1,) z) '%s %s' % (1, 2, 3) z$ '%(bar)s' % {} z6 '%(bar)s' % {'bar': 1, 'baz': 2} z+ '%(bar)s' % (1, 2, 3) z* '%s %s' % {'k': 'v'} z1 '%(bar)*s' % {'bar': 'baz'} z: '%s' % {'foo': 'bar', 'baz': 'womp'} z+ "%1000000000000f" % 1 z, '%% %s %% %s' % (1, 2) zO '%.*f' % (2, 1.1234) '%*.*f' % (5, 2, 3.1234) ) r r ÚPercentFormatInvalidFormatÚ$PercentFormatMixedPositionalAndNamedÚ'PercentFormatUnsupportedFormatCharacterÚ$PercentFormatPositionalCountMismatchÚPercentFormatMissingArgumentÚ PercentFormatExtraNamedArgumentsÚPercentFormatExpectedMappingÚPercentFormatExpectedSequenceÚ!PercentFormatStarRequiresSequencers rÚ!test_invalid_percent_format_callsz6TestStringFormatting.test_invalid_percent_format_calls)sÿ€Ø � Š ð å Ô )ñ +ô +ð +ð � Š ð å Ô 3ñ 5ô 5ð 5ð � Š ð å Ô 3ñ 5ô 5ð 5ð � Š ð å Ô 6ñ 8ô 8ð 8ð � Š ð å Ô 3ñ 5ô 5ð 5ð � Š ð å Ô 3ñ 5ô 5ð 5ð � Š ð å Ô +ñ .ô .ð .ð � Š ð å Ô /ñ 1ô 1ð 1ð � Š ð å Ô +ñ -ô -ð -ð � Š ð å Ô ,ñ .ô .ð .ð � Š ð å Ô 0ñ 2ô 2ð 2ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð ñ ô ð ð ð rcóZ—| d¦«| d¦«dS)NzS a = [] '%s %s' % [*a] '%s %s' % (*a,) z8 k = {} '%(k)s' % {**k} r$rs rÚ5test_ok_percent_format_cannot_determine_element_countzJTestStringFormatting.test_ok_percent_format_cannot_determine_element_count]sD€Ø � Š ð ñ ô ð ð � Š ð ñ ô ð ð ð rN)r¹rºr»r7r>rIrKr}rrr4r4ÒsR€€€€€ð ð ð ð>4 ð4 ð4 ðl2 ð2 ð2 ðh  ð  ð  ð  ð  rr4cóˆ—eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z e e dkd ¦«d „¦«Z d „Z d „Zd „Zd„Zd„ZdS)ÚTestAsyncStatementscó0—| d¦«dS)Nz8 async def bar(): return 42 r$rs rÚ test_asyncDefz!TestAsyncStatements.test_asyncDefkr¸rcó0—| d¦«dS)NzS async def read_data(db): await db.fetch('SELECT ...') r$rs rÚtest_asyncDefAwaitz&TestAsyncStatements.test_asyncDefAwaitqr¸rcóF—| dtj¦«dS)Nz; async def bar(): return foo() rBrs rÚtest_asyncDefUndefinedz*TestAsyncStatements.test_asyncDefUndefinedws.€Ø � Š ð õŒ_ñ ô ð ð ð rcó0—| d¦«dS)Nz© async def read_data(db): output = [] async for row in db.cursor(): output.append(row) return output r$rs rÚ test_asyncForz!TestAsyncStatements.test_asyncFor}ó'€Ø � Š ð ñ ô ð ð ð rcó0—| d¦«dS)NzY async def coro(it): async for _ in it: pass r$rs rÚtest_asyncForUnderscoreLoopVarz2TestAsyncStatements.test_asyncForUnderscoreLoopVar†ó'€Ø � Š ð ñ ô ð ð ð rcóZ—| d¦«| d¦«dS)Nzë async def read_data(db): output = [] async for row in db.cursor(): if row[0] == 'skip': continue output.append(row) return output zè async def read_data(db): output = [] async for row in db.cursor(): if row[0] == 'stop': break output.append(row) return output r$rs rÚtest_loopControlInAsyncForz.TestAsyncStatements.test_loopControlInAsyncFor�sD€Ø � Š ð ñ ô ð ð � Š ð ñ ô ð ð ð rcó†—| dtj¦«| dtj¦«dS)NzÔ async def read_data(db): output = [] async for row in db.cursor(): output.append(row) else: continue return output zÑ async def read_data(db): output = [] async for row in db.cursor(): output.append(row) else: break return output )r r rcrprs rÚtest_loopControlInAsyncForElsez2TestAsyncStatements.test_loopControlInAsyncForElse¢sT€Ø � Š ð õÔ "ñ $ô $ð $ð � Š ð õÔ ñ !ô !ð !ð !ð !rrgrjcóF—| dtj¦«dS)Nzø async def read_data(db): output = [] async for row in db.cursor(): try: output.append(row) finally: continue return output rlrs rÚtest_continueInAsyncForFinallyz2TestAsyncStatements.test_continueInAsyncForFinally·s/€à � Š ð  õÔ ñ "ô "ð "ð "ð "rcó0—| d¦«dS)Nz‹ async def commit(session, data): async with session.transaction(): await session.update(data) r$rs rÚtest_asyncWithz"TestAsyncStatements.test_asyncWithÄrYrcó0—| d¦«dS)Nzà async def commit(session, data): async with session.transaction() as trans: await trans.begin() ... await trans.end() r$rs rÚtest_asyncWithItemz&TestAsyncStatements.test_asyncWithItemËrVrcó0—| d¦«dS)Nz9 def foo(a, b): return a @ b r$rs rÚ test_matmulzTestAsyncStatements.test_matmulÔr¸rcó0—| d¦«dS)NzE hi = 'hi' mom = 'mom' f'{hi} {mom}' r$rs rÚtest_formatstringz%TestAsyncStatements.test_formatstringÚrYrcóÚ—| d¦«| d¦«| dtj¦«| dtj¦«dS)Nz; raise NotImplementedError("This is fine") z+ raise NotImplementedError z? raise NotImplemented("This isn't gonna work") z& raise NotImplemented )r r ÚRaiseNotImplementedrs rÚtest_raise_notimplementedz-TestAsyncStatements.test_raise_notimplementedásŠ€Ø � Š ð ñ ô ð ð � Š ð ñ ô ð ð � Š ð å Ô "ñ $ô $ð $ð � Š ð å Ô "ñ $ô $ð $ð $ð $rN)r¹rºr»rOrQrSrUrXr[r]rrr_rarcrergrjr}rrrMrMisö€€€€€ð ð ð ð  ð ð ð ððð  ð ð ð ð ð ð ð ð ð*!ð!ð!ð* €VˆL˜6Ò !Ð#7Ñ8Ô8ð "ð "ñ9Ô8ð "ð ð ð ð ð ð ð ð ð ð  ð ð ð$ð$ð$ð$ð$rrMcó6—eZdZdZd„Zd„Zd„Zd„Zd„Zd„Z dS) ÚTestIncompatiblePrintOperatorz@ Tests for warning about invalid use of print function. có0—| d¦«dS)Nz print("Hello") r$rs rÚtest_valid_printz.TestIncompatiblePrintOperator.test_valid_printøs'€Ø � Š ð ñ ô ð ð ð rcóÈ—| dtj¦«jd}| |jd¦«| |jd¦«dS)Nzn from __future__ import print_function import sys print >>sys.stderr, "Hello" ré)r r ÚInvalidPrintSyntaxrÚ assertEqualÚlinenoÚcol)rÚexcs rÚ,test_invalid_print_when_imported_from_futurezJTestIncompatiblePrintOperator.test_invalid_print_when_imported_from_futureýsf€Ø�kŠkð õÔ !ñ #ô#ô$,¨Aô /ˆð ×Ò˜œ QÑ'Ô'Ð'Ø ×Ò˜œ !Ñ$Ô$Ð$Ð$Ð$rcó0—| d¦«dS)zJ A valid assignment, tested for catching false positives. z` from __future__ import print_function log = print log("Hello") Nr$rs rÚtest_print_function_assignmentzr‚sSððððÐÐÐÐÐà"Ð"Ð"Ð"Ð"Ð"Ø8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ðk ðk ðk ðk ðk ˆ8ñk ôk ðk ð\#V  ðV  ðV  ðV  ðV  ˜8ñV  ôV  ðV  ðrT ðT ðT ðT ðT ˜8ñT ôT ðT ðnG$ðG$ðG$ðG$ðG$˜(ñG$ôG$ðG$ðT/ ð/ ð/ ð/ ð/  Hñ/ ô/ ð/ ð/ ð/ r