ó
    ÞÅŸg§ƒ  ã                   ó~   • S SK Jr  S SKJrJrJrJrJr  S SK	J
r
Jr   " S S\
5      r " S S\
5      r " S S	\
5      rg
)é    )Úmessages)ÚFutureImportationÚImportationÚImportationFromÚStarImportationÚSubmoduleImportation)ÚTestCaseÚskipc                   óz   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rSrg)ÚTestImportationObjecté   c                 ód   • [        SS S5      nUR                  S:X  d   e[        U5      S:X  d   eg )NÚazimport a©r   Úsource_statementÚstr©ÚselfÚbindings     Ú[/var/www/blue/EV-Temp_rev04/venv/lib/python3.13/site-packages/pyflakes/test/test_imports.pyÚtest_import_basicÚ'TestImportationObject.test_import_basic   s6   € Ü˜c 4¨Ó-ˆØ×'Ñ'¨:Ó5Ð5Ð5Ü�7‹|˜sÓ"Ð"Ñ"ó    c                 ód   • [        SS S5      nUR                  S:X  d   e[        U5      S:X  d   eg )NÚcr   zimport a as cza as cr   r   s     r   Útest_import_asÚ$TestImportationObject.test_import_as   s6   € Ü˜c 4¨Ó-ˆØ×'Ñ'¨?Ó:Ð:Ð:Ü�7‹|˜xÓ'Ð'Ñ'r   c                 ób   • [        SS 5      nUR                  S:X  d   e[        U5      S:X  d   eg )Núa.bz
import a.b)r   r   r   r   s     r   Útest_import_submoduleÚ+TestImportationObject.test_import_submodule   s4   € Ü& u¨dÓ3ˆØ×'Ñ'¨<Ó7Ð7Ð7Ü�7‹|˜uÓ$Ð$Ñ$r   c                 ód   • [        SS S5      nUR                  S:X  d   e[        U5      S:X  d   eg )Nr   r   zimport a.b as cúa.b as cr   r   s     r   Útest_import_submodule_asÚ.TestImportationObject.test_import_submodule_as   s7   € ä˜c 4¨Ó/ˆØ×'Ñ'Ð+<Ó<Ð<Ð<Ü�7‹|˜zÓ)Ð)Ñ)r   c                 ód   • [        SS S5      nUR                  S:X  d   e[        U5      S:X  d   eg )Nr   r   zimport a.b as aza.b as ar   r   s     r   Ú$test_import_submodule_as_source_nameÚ:TestImportationObject.test_import_submodule_as_source_name#   s7   € Ü˜c 4¨Ó/ˆØ×'Ñ'Ð+<Ó<Ð<Ð<Ü�7‹|˜zÓ)Ð)Ñ)r   c                 óf   • [        SS SS5      nUR                  S:X  d   e[        U5      S:X  d   eg )Nr   Ú.zfrom . import az.a©r   r   r   r   s     r   Útest_importfrom_relativeÚ.TestImportationObject.test_importfrom_relative(   s9   € Ü! # t¨S°#Ó6ˆØ×'Ñ'Ð+<Ó<Ð<Ð<Ü�7‹|˜tÓ#Ð#Ñ#r   c                 óf   • [        SS SS5      nUR                  S:X  d   e[        U5      S:X  d   eg )Nr   ú..zfrom .. import aú..ar+   r   s     r   Útest_importfrom_relative_parentÚ5TestImportationObject.test_importfrom_relative_parent-   s9   € Ü! # t¨T°3Ó7ˆØ×'Ñ'Ð+=Ó=Ð=Ð=Ü�7‹|˜uÓ$Ð$Ñ$r   c                 óf   • [        SS SS5      nUR                  S:X  d   e[        U5      S:X  d   eg )NÚbr0   zfrom ..a import bz..a.br+   r   s     r   Ú$test_importfrom_relative_with_moduleÚ:TestImportationObject.test_importfrom_relative_with_module2   ó9   € Ü! # t¨U°CÓ8ˆØ×'Ñ'Ð+>Ó>Ð>Ð>Ü�7‹|˜wÓ&Ð&Ñ&r   c                 óf   • [        SS SS5      nUR                  S:X  d   e[        U5      S:X  d   eg )Nr   r0   r4   zfrom ..a import b as cz
..a.b as cr+   r   s     r   Ú'test_importfrom_relative_with_module_asÚ=TestImportationObject.test_importfrom_relative_with_module_as7   ó9   € Ü! # t¨U°CÓ8ˆØ×'Ñ'Ð+CÓCÐCÐCÜ�7‹|˜|Ó+Ð+Ñ+r   c                 óf   • [        SS SS5      nUR                  S:X  d   e[        U5      S:X  d   eg )Nr4   r   zfrom a import br   r+   r   s     r   Útest_importfrom_memberÚ,TestImportationObject.test_importfrom_member<   s9   € Ü! # t¨S°#Ó6ˆØ×'Ñ'Ð+<Ó<Ð<Ð<Ü�7‹|˜uÓ$Ð$Ñ$r   c                 óf   • [        SS SS5      nUR                  S:X  d   e[        U5      S:X  d   eg )Nr   r   zfrom a.b import cza.b.cr+   r   s     r   Ú test_importfrom_submodule_memberÚ6TestImportationObject.test_importfrom_submodule_memberA   r7   r   c                 óf   • [        SS SS5      nUR                  S:X  d   e[        U5      S:X  d   eg )Nr   r   r4   zfrom a import b as cr#   r+   r   s     r   Útest_importfrom_member_asÚ/TestImportationObject.test_importfrom_member_asF   s9   € Ü! # t¨S°#Ó6ˆØ×'Ñ'Ð+AÓAÐAÐAÜ�7‹|˜zÓ)Ð)Ñ)r   c                 óf   • [        SS SS5      nUR                  S:X  d   e[        U5      S:X  d   eg )NÚdr   r   zfrom a.b import c as dz
a.b.c as dr+   r   s     r   Ú#test_importfrom_submodule_member_asÚ9TestImportationObject.test_importfrom_submodule_member_asK   r;   r   c                 ób   • [        SS 5      nUR                  S:X  d   e[        U5      S:X  d   eg )Nr   zfrom a.b import *za.b.*©r   r   r   r   s     r   Útest_importfrom_starÚ*TestImportationObject.test_importfrom_starP   s5   € Ü! %¨Ó.ˆØ×'Ñ'Ð+>Ó>Ð>Ð>Ü�7‹|˜wÓ&Ð&Ñ&r   c                 ób   • [        SS 5      nUR                  S:X  d   e[        U5      S:X  d   eg )Nz.bzfrom .b import *z.b.*rJ   r   s     r   Útest_importfrom_star_relativeÚ3TestImportationObject.test_importfrom_star_relativeU   s5   € Ü! $¨Ó-ˆØ×'Ñ'Ð+=Ó=Ð=Ð=Ü�7‹|˜vÓ%Ð%Ñ%r   c                 ód   • [        SS S 5      nUR                  S:X  d   e[        U5      S:X  d   eg )NÚprint_functionz%from __future__ import print_functionz__future__.print_function)r   r   r   r   s     r   Útest_importfrom_futureÚ,TestImportationObject.test_importfrom_futureZ   s9   € Ü#Ð$4°d¸DÓAˆØ×'Ñ'Ð+RÓRÐRÐRÜ�7‹|Ð:Ó:Ð:Ñ:r   c                 óD   • U R                  S[        R                  5        g)zU
The magic underscore var should be reported as unused when used as an
import alias.
zimport fu as _N©ÚflakesÚmÚUnusedImport©r   s    r   Útest_unusedImport_underscoreÚ2TestImportationObject.test_unusedImport_underscore_   s   € ð
 	�‰Ð$¤a§n¡nÕ5r   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r    r$   r'   r,   r1   r5   r9   r=   r@   rC   rG   rK   rN   rR   rZ   Ú__static_attributes__r\   r   r   r   r      sW   † ò#ò
(ò
%ò
*ò*ò
$ò
%ò
'ò
,ò
%ò
'ò
*ò
,ò
'ò
&ò
;õ
6r   r   c                   óv  • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rAS@ rBSA rCSB rDSC rESD rFSE rGSF rHSG rISH rJSI rKSJ rLSK rMSL rNSM rOSN rPSO rQSP rRSQ rSSR rTSS rUST rVSU rWSV rXSW rYSX rZSY r[SZ r\S[ r]\^" S\5      S] 5       r_S^ r`S_ raS` rbSa rcSb rdSc reSd rfSerggf)gÚTestég   c                 óÀ   • U R                  S[        R                  [        R                  5        U R                  S[        R                  [        R                  5        g )Nzimport fu, barzfrom baz import fu, barrU   rY   s    r   Útest_unusedImportÚTest.test_unusedImporti   s4   € Ø�‰Ð$¤a§n¡n´a·n±nÔEØ�‰Ð-¬q¯~©~¼q¿~¹~ÕNr   c                 ó�  • U R                  S[        R                  5        U R                  S[        R                  5        U R                  S[        R                  5        U R                  S[        R                  5        U R                  S[        R                  5        U R                  S[        R                  5        U R                  S[        R                  5        U R                  S[        R                  5        U R                  S	[        R                  5        U R                  S[        R                  5      nUR                  S
   nUR                  S:X  d   eUR
                  S:X  d   eU R                  S[        R                  5      nUR                  S
   nUR                  S:X  d   eUR
                  S:X  d   eg )Nzfrom . import fuzfrom . import fu as bazzfrom .. import fuzfrom ... import fuzfrom .. import fu as bazzfrom .bar import fuzfrom ..bar import fuzfrom ...bar import fuzfrom ...bar import fu as bazr   ú%r imported but unused©z.fu)z
.fu as baz)rV   rW   rX   r   ÚmessageÚmessage_args©r   ÚcheckerÚerrors      r   Útest_unusedImport_relativeÚTest.test_unusedImport_relativem   sF  € Ø�‰Ð&¬¯©Ô7Ø�‰Ð-¬q¯~©~Ô>Ø�‰Ð'¬¯©Ô8Ø�‰Ð(¬!¯.©.Ô9Ø�‰Ð.´·±Ô?Ø�‰Ð)¬1¯>©>Ô:Ø�‰Ð*¬A¯N©NÔ;Ø�‰Ð+¬Q¯^©^Ô<Ø�‰Ð2´A·N±NÔCà—+‘+Ð0´!·.±.ÓAˆà× Ñ  Ñ#ˆØ�}‰}Ð 8Ó8Ð8Ð8Ø×!Ñ! YÓ.Ð.Ð.à—+‘+Ð7¼¿¹ÓHˆà× Ñ  Ñ#ˆØ�}‰}Ð 8Ó8Ð8Ð8Ø×!Ñ!Ð%5Ó5Ð5Ñ5r   c                 óÀ   • U R                  S[        R                  [        R                  5        U R                  S[        R                  [        R                  5        g )Nzimport fu as FU, bar as FUz#from moo import fu as FU, bar as FU©rV   rW   ÚRedefinedWhileUnusedrX   rY   s    r   Útest_aliasedImportÚTest.test_aliasedImport„   s>   € Ø�‰Ð0Ü×*Ñ*¬A¯N©Nô	<à�‰Ð9Ü×*Ñ*¬A¯N©Nõ	<r   c                 ój   • U R                  S5        U R                  S5        U R                  S5        g)z5Imported aliases can shadow the source of the import.zfrom moo import fu as moo; moozimport fu as fu; fuzimport fu.bar as fu; fuN©rV   rY   s    r   Útest_aliasedImportShadowModuleÚ#Test.test_aliasedImportShadowModuleŠ   s)   € à�‰Ð4Ô5Ø�‰Ð)Ô*Ø�‰Ð-Õ.r   c                 ój   • U R                  S5        U R                  S5        U R                  S5        g )Nzimport fu; print(fu)zfrom baz import fu; print(fu)zimport fu; del furx   rY   s    r   Útest_usedImportÚTest.test_usedImport�   s)   € Ø�‰Ð*Ô+Ø�‰Ð3Ô4Ø�‰Ð'Õ(r   c                 óŒ   • U R                  S5        U R                  S5        U R                  S5        U R                  S5        g )Nzfrom . import fu; assert fuzfrom .bar import fu; assert fuzfrom .. import fu; assert fuz'from ..bar import fu as baz; assert bazrx   rY   s    r   Útest_usedImport_relativeÚTest.test_usedImport_relative•   s6   € Ø�‰Ð1Ô2Ø�‰Ð4Ô5Ø�‰Ð2Ô3Ø�‰Ð=Õ>r   c                 óÄ   • U R                  S[        R                  5        U R                  S[        R                  5        U R                  S[        R                  5        g )Nzimport fu; fu = 3zimport fu; fu, bar = 3zimport fu; [fu, bar] = 3©rV   rW   rt   rY   s    r   Útest_redefinedWhileUnusedÚTest.test_redefinedWhileUnused›   sA   € Ø�‰Ð'¬×)?Ñ)?Ô@Ø�‰Ð,¬a×.DÑ.DÔEØ�‰Ð.´×0FÑ0FÕGr   c                 óD   • U R                  S[        R                  5        g)zM
Test that importing a module twice within an if
block does raise a warning.
z[
        i = 2
        if i==1:
            import os
            import os
        os.pathNr‚   rY   s    r   Útest_redefinedIfÚTest.test_redefinedIf    s    € ð
 	�‰ð ô
 ×*Ñ*õ	,r   c                 ó&   • U R                  S5        g)zT
Test that importing a module twice in if
and else blocks does not raise a warning.
zi
        i = 2
        if i==1:
            import os
        else:
            import os
        os.pathNrx   rY   s    r   Útest_redefinedIfElseÚTest.test_redefinedIfElse¬   s   € ð
 	�‰ð õ 	r   c                 óD   • U R                  S[        R                  5        g)zI
Test that importing a module twice in a try block
does raise a warning.
zj
        try:
            import os
            import os
        except:
            pass
        os.pathNr‚   rY   s    r   Útest_redefinedTryÚTest.test_redefinedTry¹   s    € ð
 	�‰ð ô ×*Ñ*õ	,r   c                 ó&   • U R                  S5        g)zX
Test that importing a module twice in a try
and except block does not raise a warning.
zY
        try:
            import os
        except:
            import os
        os.pathNrx   rY   s    r   Útest_redefinedTryExceptÚTest.test_redefinedTryExceptÆ   s   € ð
 	�‰ð õ 	r   c                 ó&   • U R                  S5        g)zf
Test that importing a module twice using a nested
try/except and if blocks does not issue a warning.
z�
        try:
            if True:
                if True:
                    import os
        except:
            import os
        os.pathNrx   rY   s    r   Útest_redefinedTryNestedÚTest.test_redefinedTryNestedÒ   s   € ð
 	�‰ð õ 	r   c                 ó&   • U R                  S5        g )Nzù
        try:
            from aa import mixer
        except AttributeError:
            from bb import mixer
        except RuntimeError:
            from cc import mixer
        except:
            from dd import mixer
        mixer(123)
        rx   rY   s    r   Útest_redefinedTryExceptMultiÚ!Test.test_redefinedTryExceptMultià   s   € Ø�‰ð 
õ 
	r   c                 óD   • U R                  S[        R                  5        g )Nz¦
        try:
            from aa import mixer
        except ImportError:
            pass
        else:
            from bb import mixer
        mixer(123)
        r‚   rY   s    r   Útest_redefinedTryElseÚTest.test_redefinedTryElseí   s   € Ø�‰ð ô ×#Ñ#õ	%r   c                 ó&   • U R                  S5        g )NzÙ
        try:
            import funca
        except ImportError:
            from bb import funca
            from bb import funcb
        else:
            from bbb import funcb
        print(funca, funcb)
        rx   rY   s    r   Útest_redefinedTryExceptElseÚ Test.test_redefinedTryExceptElseø   s   € Ø�‰ð 	õ 		r   c                 ó&   • U R                  S5        g )Nz¡
        try:
            from aa import a
        except ImportError:
            from bb import a
        finally:
            a = 42
        print(a)
        rx   rY   s    r   Útest_redefinedTryExceptFinallyÚ#Test.test_redefinedTryExceptFinally  s   € Ø�‰ð õ 	r   c                 ó&   • U R                  S5        g )Nzà
        try:
            import b
        except ImportError:
            b = Ellipsis
            from bb import a
        else:
            from aa import a
        finally:
            a = 42
        print(a, b)
        rx   rY   s    r   Ú"test_redefinedTryExceptElseFinallyÚ'Test.test_redefinedTryExceptElseFinally  s   € Ø�‰ð õ 	r   c                 óD   • U R                  S[        R                  5        g )Nz>
        import fu
        def fu():
            pass
        r‚   rY   s    r   Útest_redefinedByFunctionÚTest.test_redefinedByFunction  ó   € Ø�‰ð ô ×#Ñ#õ		%r   c                 ób   • U R                  S[        R                  [        R                  5        g)úZ
Test that shadowing a global name with a nested function definition
generates a warning.
zx
        import fu
        def bar():
            def baz():
                def fu():
                    pass
        Nrs   rY   s    r   Útest_redefinedInNestedFunctionÚ#Test.test_redefinedInNestedFunction$  s&   € ð
 	�‰ð ô ×#Ñ#¤Q§^¡^õ	5r   c                 óž   • U R                  S[        R                  [        R                  [        R                  [        R                  5        g)r¨   zŽ
        import fu
        def bar():
            import fu
            def baz():
                def fu():
                    pass
        Nrs   rY   s    r   Ú#test_redefinedInNestedFunctionTwiceÚ(Test.test_redefinedInNestedFunctionTwice1  s5   € ð
 	�‰ð ô ×*Ñ*¬A×,BÑ,BÜ—N‘N¤A§N¡Nõ		4r   c                 ó&   • U R                  S5        g)zt
Test that a global import which is redefined locally,
but used later in another scope does not generate a warning.
aq  
        import unittest, transport

        class GetTransportTestCase(unittest.TestCase):
            def test_get_transport(self):
                transport = 'transport'
                self.assertIsNotNone(transport)

        class TestTransportMethodArgs(unittest.TestCase):
            def test_send_defaults(self):
                transport.Transport()
        Nrx   rY   s    r   Útest_redefinedButUsedLaterÚTest.test_redefinedButUsedLaterA  s   € ð
 	�‰ð õ 	r   c                 óD   • U R                  S[        R                  5        g )Nz>
        import fu
        class fu:
            pass
        r‚   rY   s    r   Útest_redefinedByClassÚTest.test_redefinedByClassS  r¦   r   c                 ó&   • U R                  S5        g)z{
If an imported name is redefined by a class statement which also uses
that name in the bases list, no warning is emitted.
zM
        from fu import bar
        class bar(bar):
            pass
        Nrx   rY   s    r   Útest_redefinedBySubclassÚTest.test_redefinedBySubclassZ  ó   € ð
 	�‰ð õ 	r   c                 ó&   • U R                  S5        g)zQ
Test that shadowing a global with a class attribute does not produce a
warning.
zS
        import fu
        class bar:
            fu = 1
        print(fu)
        Nrx   rY   s    r   Útest_redefinedInClassÚTest.test_redefinedInClasse  s   € ð
 	�‰ð õ 	r   c                 óf   • U R                  S5        U R                  S[        R                  5        g)z>
Test that import within class is a locally scoped attribute.
z2
        class bar:
            import fu
        z>
        class bar:
            import fu

        fu
        N©rV   rW   ÚUndefinedNamerY   s    r   Útest_importInClassÚTest.test_importInClassq  s1   € ð 	�‰ð ô 	ð
 	�‰ð ô
 �_‰_õ	r   c                 ó&   • U R                  S5        g )NzD
        import fu
        def fun():
            print(fu)
        rx   rY   s    r   Útest_usedInFunctionÚTest.test_usedInFunction�  ó   € Ø�‰ð õ 	r   c                 ó„   • U R                  S[        R                  [        R                  5        U R                  S5        g )NzF
        import fu
        def fun(fu):
            print(fu)
        zX
        import fu
        def fun(fu):
            print(fu)
        print(fu)
        ©rV   rW   rX   rt   rY   s    r   Útest_shadowedByParameterÚTest.test_shadowedByParameterˆ  s7   € Ø�‰ð ô �^‰^œQ×3Ñ3ô		5ð 	�‰ð õ 	r   c                 ó&   • U R                  S5        g )Nz	fu = Nonerx   rY   s    r   Útest_newAssignmentÚTest.test_newAssignment–  s   € Ø�‰�KÕ r   c                 óf   • U R                  S5        U R                  S[        R                  5        g )Nzimport fu; fu.bar.bazzimport fu; "bar".fu.bazrU   rY   s    r   Útest_usedInGetattrÚTest.test_usedInGetattr™  s"   € Ø�‰Ð+Ô,Ø�‰Ð-¬q¯~©~Õ>r   c                 ó&   • U R                  S5        g )Nzimport fu; print(fu.bar[1:])rx   rY   s    r   Útest_usedInSliceÚTest.test_usedInSlice�  s   € Ø�‰Ð2Õ3r   c                 ó&   • U R                  S5        g )Nz6
        import fu
        if True: print(fu)
        rx   rY   s    r   Útest_usedInIfBodyÚTest.test_usedInIfBody   ó   € Ø�‰ð õ 	r   c                 ó&   • U R                  S5        g )Nz/
        import fu
        if fu: pass
        rx   rY   s    r   Útest_usedInIfConditionalÚTest.test_usedInIfConditional¦  rÔ   r   c                 ó&   • U R                  S5        g )NzH
        import fu
        if False: pass
        elif fu: pass
        rx   rY   s    r   Útest_usedInElifConditionalÚTest.test_usedInElifConditional¬  rÃ   r   c                 ó&   • U R                  S5        g )NzJ
        import fu
        if False: pass
        else: print(fu)
        rx   rY   s    r   Útest_usedInElseÚTest.test_usedInElse³  rÃ   r   c                 ó&   • U R                  S5        g )Nzimport fu; fu.bar()rx   rY   s    r   Útest_usedInCallÚTest.test_usedInCallº  s   € Ø�‰Ð)Õ*r   c                 ó&   • U R                  S5        g )NzC
        import fu
        class bar:
            bar = fu
        rx   rY   s    r   Útest_usedInClassÚTest.test_usedInClass½  rÃ   r   c                 ó&   • U R                  S5        g )NzO
        import fu
        class bar(object, fu.baz):
            pass
        rx   rY   s    r   Útest_usedInClassBaseÚTest.test_usedInClassBaseÄ  rÃ   r   c                 ó&   • U R                  S5        g )NzR
        import fu
        def bleh():
            pass
        print(fu)
        rx   rY   s    r   Útest_notUsedInNestedScopeÚTest.test_notUsedInNestedScopeË  ó   € Ø�‰ð õ 	r   c                 ó&   • U R                  S5        g )NzN
        import fu
        for bar in range(9):
            print(fu)
        rx   rY   s    r   Útest_usedInForÚTest.test_usedInForÓ  rÃ   r   c                 ó&   • U R                  S5        g )Nzn
        import fu
        for bar in range(10):
            pass
        else:
            print(fu)
        rx   rY   s    r   Útest_usedInForElseÚTest.test_usedInForElseÚ  ó   € Ø�‰ð õ 	r   c                 óD   • U R                  S[        R                  5        g )NzH
        import fu
        for fu in range(2):
            pass
        ©rV   rW   ÚImportShadowedByLoopVarrY   s    r   Útest_redefinedByForÚTest.test_redefinedByForã  s   € Ø�‰ð ô ×&Ñ&õ		(r   c                 óD   • U R                  S[        R                  5        g)zQ
Test that shadowing a global name with a for loop variable generates a
warning.
zS
        import fu
        fu.bar()
        for fu in ():
            pass
        Nró   rY   s    r   Útest_shadowedByForÚTest.test_shadowedByForê  s    € ð
 	�‰ð ô
 ×&Ñ&õ	(r   c                 ó„   • U R                  S[        R                  5        U R                  S[        R                  5        g)zj
Test that shadowing a global name with a for loop variable nested in a
tuple unpack generates a warning.
zl
        import fu
        fu.bar()
        for (x, y, z, (a, b, c, (fu,))) in ():
            pass
        zl
        import fu
        fu.bar()
        for [x, y, z, (a, b, c, (fu,))] in ():
            pass
        Nró   rY   s    r   Útest_shadowedByForDeepÚTest.test_shadowedByForDeepö  s>   € ð
 	�‰ð ô
 ×&Ñ&ô	(ð 	�‰ð ô
 ×&Ñ&õ	(r   c                 ó&   • U R                  S5        g )NzD
        import fu
        def fun():
            return fu
        rx   rY   s    r   Útest_usedInReturnÚTest.test_usedInReturn	  rÃ   r   c                 ó  • U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S	5        U R                  S
5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        g )Nzimport fu; 3 + fu.barzimport fu; 3 % fu.barzimport fu; 3 - fu.barzimport fu; 3 * fu.barzimport fu; 3 ** fu.barzimport fu; 3 / fu.barzimport fu; 3 // fu.barzimport fu; -fu.barzimport fu; ~fu.barzimport fu; 1 == fu.barzimport fu; 1 | fu.barzimport fu; 1 & fu.barzimport fu; 1 ^ fu.barzimport fu; 1 >> fu.barzimport fu; 1 << fu.barrx   rY   s    r   Útest_usedInOperatorsÚTest.test_usedInOperators  sÅ   € Ø�‰Ð+Ô,Ø�‰Ð+Ô,Ø�‰Ð+Ô,Ø�‰Ð+Ô,Ø�‰Ð,Ô-Ø�‰Ð+Ô,Ø�‰Ð,Ô-Ø�‰Ð(Ô)Ø�‰Ð(Ô)Ø�‰Ð,Ô-Ø�‰Ð+Ô,Ø�‰Ð+Ô,Ø�‰Ð+Ô,Ø�‰Ð,Ô-Ø�‰Ð,Õ-r   c                 ó&   • U R                  S5        g )Nzimport fu; assert fu.barrx   rY   s    r   Útest_usedInAssertÚTest.test_usedInAssert!  s   € Ø�‰Ð.Õ/r   c                 ó&   • U R                  S5        g )Nzimport fu; fu.bar[1]rx   rY   s    r   Útest_usedInSubscriptÚTest.test_usedInSubscript$  s   € Ø�‰Ð*Õ+r   c                 ój   • U R                  S5        U R                  S5        U R                  S5        g )Nzimport fu; fu and Falsezimport fu; fu or Falsezimport fu; not fu.barrx   rY   s    r   Útest_usedInLogicÚTest.test_usedInLogic'  s)   € Ø�‰Ð-Ô.Ø�‰Ð,Ô-Ø�‰Ð+Õ,r   c                 ó&   • U R                  S5        g )Nzimport fu; [fu]rx   rY   s    r   Útest_usedInListÚTest.test_usedInList,  s   € Ø�‰Ð%Õ&r   c                 ó&   • U R                  S5        g )Nzimport fu; (fu,)rx   rY   s    r   Útest_usedInTupleÚTest.test_usedInTuple/  s   € Ø�‰Ð&Õ'r   c                 ó&   • U R                  S5        g ©Nz@
        import fu
        try: fu
        except: pass
        rx   rY   s    r   Útest_usedInTryÚTest.test_usedInTry2  rÃ   r   c                 ó&   • U R                  S5        g r  rx   rY   s    r   Útest_usedInExceptÚTest.test_usedInExcept9  rÃ   r   c                 óŠ   • [         R                  /nUR                  [         R                  5        U R                  " S/UQ76   g )NzR
        import fu
        try: pass
        except Exception as fu: pass
        )rW   rt   ÚappendÚUnusedVariablerV   )r   Úexpecteds     r   Útest_redefinedByExceptÚTest.test_redefinedByExcept@  s=   € Ü×*Ñ*Ð+ˆà�‰œ×(Ñ(Ô)Ø�Šð ð 	ð ô		r   c                 ó&   • U R                  S5        g )Nz0
        import fu
        raise fu.bar
        rx   rY   s    r   Útest_usedInRaiseÚTest.test_usedInRaiseJ  rÔ   r   c                 ó&   • U R                  S5        g )NzC
        import fu
        def gen():
            yield fu
        rx   rY   s    r   Útest_usedInYieldÚTest.test_usedInYieldP  rÃ   r   c                 óH   • U R                  S5        U R                  S5        g )Nzimport fu; {fu:None}zimport fu; {1:fu}rx   rY   s    r   Útest_usedInDictÚTest.test_usedInDictW  s   € Ø�‰Ð*Ô+Ø�‰Ð'Õ(r   c                 ó&   • U R                  S5        g )NzC
        import fu
        def f(bar=fu):
            pass
        rx   rY   s    r   Útest_usedInParameterDefaultÚ Test.test_usedInParameterDefault[  rÃ   r   c                 ó&   • U R                  S5        g )Nzimport fu; fu.bar = 1rx   rY   s    r   Útest_usedInAttributeAssignÚTest.test_usedInAttributeAssignb  ó   € Ø�‰Ð+Õ,r   c                 ó&   • U R                  S5        g )Nzimport fu; fu.bar(stuff=fu)rx   rY   s    r   Útest_usedInKeywordArgÚTest.test_usedInKeywordArge  s   € Ø�‰Ð1Õ2r   c                 óH   • U R                  S5        U R                  S5        g )Nzimport fu; bar=fuzimport fu; n=0; n+=furx   rY   s    r   Útest_usedInAssignmentÚTest.test_usedInAssignmenth  s   € Ø�‰Ð'Ô(Ø�‰Ð+Õ,r   c                 óH   • U R                  S5        U R                  S5        g )Nz!import fu; [fu for _ in range(1)]z&import fu; [1 for _ in range(1) if fu]rx   rY   s    r   Útest_usedInListCompÚTest.test_usedInListCompl  s   € Ø�‰Ð7Ô8Ø�‰Ð<Õ=r   c                 óH   • U R                  S5        U R                  S5        g )NzA
        import fu
        try: pass
        finally: fu
        zA
        import fu
        try: fu
        finally: pass
        rx   rY   s    r   Útest_usedInTryFinallyÚTest.test_usedInTryFinallyp  s&   € Ø�‰ð ô 	ð 	�‰ð õ 	r   c                 óH   • U R                  S5        U R                  S5        g )Nz;
        import fu
        while 0:
            fu
        z2
        import fu
        while fu: pass
        rx   rY   s    r   Útest_usedInWhileÚTest.test_usedInWhile}  s&   € Ø�‰ð ô 	ð 	�‰ð õ 	r   c                 óD   • U R                  S[        R                  5        g)z\
A 'global' statement shadowing an unused import should not prevent it
from being reported.
z6
        import fu
        def f(): global fu
        NrU   rY   s    r   Útest_usedInGlobalÚTest.test_usedInGlobal‰  s   € ð
 	�‰ð ô �^‰^õ	r   c                 ó&   • U R                  S5        g)z\
A 'global' statement shadowing a used import should not cause it to be
reported as unused.
zc
            import foo
            def f(): global foo
            def g(): foo.is_used()
        Nrx   rY   s    r   Útest_usedAndGlobalÚTest.test_usedAndGlobal“  r·   r   c                 ó&   • U R                  S5        g)zV
Binding an import to a declared global should not cause it to be
reported as unused.
zX
            def f(): global foo; import foo
            def g(): foo.is_used()
        Nrx   rY   s    r   Útest_assignedToGlobalÚTest.test_assignedToGlobalž  s   € ð
 	�‰ð õ 	r   c                 ó0   • SnU R                  SU-  5        g )Nzexec("print(1)", fu.bar)zimport fu; %srx   )r   Ú	exec_stmts     r   Útest_usedInExecÚTest.test_usedInExec¨  s   € Ø.ˆ	Ø�‰�O iÑ/Õ0r   c                 ó&   • U R                  S5        g )Nzimport fu; lambda: furx   rY   s    r   Útest_usedInLambdaÚTest.test_usedInLambda¬  r.  r   c                 ó„   • U R                  S[        R                  [        R                  5        U R                  S5        g )Nzimport fu; lambda fu: fuzimport fu; lambda fu: fu
fu()rÅ   rY   s    r   Útest_shadowedByLambdaÚTest.test_shadowedByLambda¯  s-   € Ø�‰Ð.Ü—N‘N¤A×$:Ñ$:ô	<à�‰Ð4Õ5r   c                 ó&   • U R                  S5        g )Nzimport fu; "meow"[::fu]rx   rY   s    r   Útest_usedInSliceObjÚTest.test_usedInSliceObj´  s   € Ø�‰Ð-Õ.r   c                 ób   • U R                  S[        R                  [        R                  5        g )Nz=
        def bar():
            import fu
        fu
        )rV   rW   rX   r½   rY   s    r   Útest_unusedInNestedScopeÚTest.test_unusedInNestedScope·  s"   € Ø�‰ð ô �^‰^œQŸ_™_õ		.r   c                 óD   • U R                  S[        R                  5        g )Nz`
        class bar:
            import fu
            def fun(self):
                fu
        r¼   rY   s    r   Útest_methodsDontUseClassScopeÚ"Test.test_methodsDontUseClassScope¾  s   € Ø�‰ð ô
 �_‰_õ	r   c                 ó&   • U R                  S5        g )NzX
        def a():
            def b():
                fu
            import fu
        rx   rY   s    r   Útest_nestedFunctionsNestScopeÚ"Test.test_nestedFunctionsNestScopeÆ  rê   r   c                 ó&   • U R                  S5        g )Nz€
        def a():
            import fu
            class b:
                def c(self):
                    print(fu)
        rx   rY   s    r   Ú test_nestedClassAndFunctionScopeÚ%Test.test_nestedClassAndFunctionScopeÎ  rñ   r   c                 ó
  • U R                  S[        R                  [        R                  5        U R                  S[        R                  [        R                  5        U R                  S[        R                  [        R                  5      nUR                  S   nUR
                  R                  S5      (       d   eUR                  S:X  d   eUR                  S   nUR
                  S:X  d   eUR                  S:X  d   eg	)
z,Use of import * at module level is reported.zfrom fu import *zT
        try:
            from fu import *
        except:
            pass
        r   ú 'from %s import *' used; unable )Úfué   ri   )zfu.*N©rV   rW   ÚImportStarUsedrX   r   rk   Ú
startswithrl   rm   s      r   Útest_importStarÚTest.test_importStar×  sÛ   € à�‰Ð&¬×(8Ñ(8¼!¿.¹.ÔIØ�‰ð ô
 ×ÑœqŸ~™~ô	/ð —+‘+Ð0Ü×.Ñ.´·±ó@ˆð × Ñ  Ñ#ˆØ�}‰}×'Ñ'Ð(J×KÑKÐKÐKØ×!Ñ! XÓ-Ð-Ð-à× Ñ  Ñ#ˆØ�}‰}Ð 8Ó8Ð8Ð8Ø×!Ñ! ZÓ/Ð/Ñ/r   c                 óT  • U R                  S[        R                  [        R                  5        U R                  S[        R                  [        R                  5        U R                  S[        R                  [        R                  5      nUR                  S   nUR
                  R                  S5      (       d   eUR                  S:X  d   eUR                  S   nUR
                  S:X  d   eUR                  S:X  d   eU R                  S	[        R                  [        R                  5      nUR                  S   nUR
                  R                  S5      (       d   eUR                  S
:X  d   eUR                  S   nUR
                  S:X  d   eUR                  S:X  d   eg)z3Use of import * from a relative import is reported.zfrom .fu import *zU
        try:
            from .fu import *
        except:
            pass
        r   ra  rj   rc  ri   )z.fu.*úfrom .. import *©r/   )rj  Nrd  rm   s      r   Útest_importStar_relativeÚTest.test_importStar_relativeì  sv  € à�‰Ð'¬×)9Ñ)9¼1¿>¹>ÔJØ�‰ð ô
 ×ÑœqŸ~™~ô	/ð —+‘+Ð1Ü×.Ñ.´·±ó@ˆð × Ñ  Ñ#ˆØ�}‰}×'Ñ'Ð(J×KÑKÐKÐKØ×!Ñ! YÓ.Ð.Ð.à× Ñ  Ñ#ˆØ�}‰}Ð 8Ó8Ð8Ð8Ø×!Ñ! [Ó0Ð0Ð0à—+‘+Ð0Ü×.Ñ.´·±ó@ˆð × Ñ  Ñ#ˆØ�}‰}×'Ñ'Ð(J×KÑKÐKÐKØ×!Ñ! XÓ-Ð-Ð-à× Ñ  Ñ#ˆØ�}‰}Ð 8Ó8Ð8Ð8Ø×!Ñ!Ð%;Ó;Ð;Ñ;r   c                 ó*  • U R                  S[        R                  5        U R                  S[        R                  5        U R                  S[        R                  5      nUR                  S   nUR                  S:X  d   eUR
                  S:X  d   eg)z)import * is only allowed at module level.z7
        def a():
            from fu import *
        z7
        class a:
            from fu import *
        z7
        class a:
            from .. import *
        r   z/'from %s import *' only allowed at module levelrk  N)rV   rW   ÚImportStarNotPermittedr   rk   rl   rm   s      r   Útest_localImportStarÚTest.test_localImportStar  s•   € à�‰ð ô ×%Ñ%ô	'ð 	�‰ð ô ×%Ñ%ô	'ð
 —+‘+ð ô ×%Ñ%ó'ˆð × Ñ  Ñ#ˆØ�}‰}Ð QÓQÐQÐQØ×!Ñ! XÓ-Ð-Ñ-r   c                 ó&   • U R                  S5        g)z@
If a dotted name is imported and used, no warning is reported.
z.
        import fu.bar
        fu.bar
        Nrx   rY   s    r   Útest_packageImportÚTest.test_packageImport  s   € ð 	�‰ð õ 	r   c                 óD   • U R                  S[        R                  5        g)zR
If a dotted name is imported and not used, an unused import warning is
reported.
zimport fu.barNrU   rY   s    r   Útest_unusedPackageImportÚTest.test_unusedPackageImport(  s   € ð
 	�‰�O¤Q§^¡^Õ4r   c                 ó„   • U R                  S[        R                  5        U R                  S[        R                  5        g)z|
If a submodule of a package is imported twice, an unused import warning
and a redefined while unused warning are reported.
z6
        import fu.bar, fu.bar
        fu.bar
        zD
        import fu.bar
        import fu.bar
        fu.bar
        Nr‚   rY   s    r   Útest_duplicateSubmoduleImportÚ"Test.test_duplicateSubmoduleImport/  s>   € ð
 	�‰ð ô ×#Ñ#ô	%ð 	�‰ð ô ×#Ñ#õ		%r   c                 óH   • U R                  S5        U R                  S5        g)zq
If two different submodules of a package are imported, no duplicate
import warning is reported for the package.
z>
        import fu.bar, fu.baz
        fu.bar, fu.baz
        zL
        import fu.bar
        import fu.baz
        fu.bar, fu.baz
        Nrx   rY   s    r   Útest_differentSubmoduleImportÚ"Test.test_differentSubmoduleImport>  s(   € ð
 	�‰ð ô 	ð 	�‰ð õ 	r   c                 óH   • U R                  S5        U R                  S5        g)z3
Usage of package marks submodule imports as used.
z>
        import fu
        import fu.bar
        fu.x
        z>
        import fu.bar
        import fu
        fu.x
        Nrx   rY   s    r   Ú'test_used_package_with_submodule_importÚ,Test.test_used_package_with_submodule_importM  ó(   € ð 	�‰ð ô 	ð 	�‰ð õ 	r   c                 óH   • U R                  S5        U R                  S5        g)z<
Usage of package by alias marks submodule imports as used.
zU
        import foo as f
        import foo.bar
        f.bar.do_something()
        z_
        import foo as f
        import foo.bar.blah
        f.bar.blah.do_something()
        Nrx   rY   s    r   Ú0test_used_package_with_submodule_import_of_aliasÚ5Test.test_used_package_with_submodule_import_of_alias]  r�  r   c                 óò   • U R                  S[        R                  5      nUR                  S   nUR                  S:X  d   eUR
                  S:X  d   eU R                  (       a  UR                  S:X  d   egg)zB
When a package and its submodule are imported, only report once.
z1
        import fu
        import fu.bar
        r   ri   )zfu.baré   N)rV   rW   rX   r   rk   rl   ÚwithDoctestÚlinenorm   s      r   Ú)test_unused_package_with_submodule_importÚ.Test.test_unused_package_with_submodule_importm  sx   € ð —+‘+ð ô �^‰^óˆð × Ñ  Ñ#ˆØ�}‰}Ð 8Ó8Ð8Ð8Ø×!Ñ! \Ó1Ð1Ð1Ø$(×$4×$4ˆu�|‰|˜qÓ Ð;Ð;¸!Ð r   c                 óŒ   • U R                  S5        U R                  S5        U R                  S5        U R                  S5        g )Nzimport fu; fu = fuzimport fu; fu, bar = fuzimport fu; [fu, bar] = fuzimport fu; fu += furx   rY   s    r   Útest_assignRHSFirstÚTest.test_assignRHSFirstz  s6   € Ø�‰Ð(Ô)Ø�‰Ð-Ô.Ø�‰Ð/Ô0Ø�‰Ð)Õ*r   c                 ó&   • U R                  S5        g )Nzp
        try:
            import fu
        except ImportError:
            import bar as fu
        fu
        rx   rY   s    r   Útest_tryingMultipleImportsÚTest.test_tryingMultipleImports€  rñ   r   c                 ó&   • U R                  S5        g )Nz`
        import fu
        def a():
            fu = 3
            return fu
        fu
        rx   rY   s    r   Útest_nonGlobalDoesNotRedefineÚ"Test.test_nonGlobalDoesNotRedefine‰  rñ   r   c                 ó&   • U R                  S5        g )Nz;
        def a():
            fu
        import fu
        rx   rY   s    r   Útest_functionsRunLaterÚTest.test_functionsRunLater’  rÃ   r   c                 óD   • U R                  S[        R                  5        g )NzG
        import fu
        def fu():
            fu
        fu
        r‚   rY   s    r   Útest_functionNamesAreBoundNowÚ"Test.test_functionNamesAreBoundNow™  s   € Ø�‰ð ô
 ×#Ñ#õ	%r   c                 ó&   • U R                  S5        g )Nza = 1; a = 2rx   rY   s    r   Ú!test_ignoreNonImportRedefinitionsÚ&Test.test_ignoreNonImportRedefinitions¡  s   € Ø�‰�NÕ#r   Útodoc                 ó&   • U R                  S5        g )NzY
        try:
            import fu
        except ImportError:
            pass
        rx   rY   s    r   Útest_importingForImportErrorÚ!Test.test_importingForImportError¤  ó   € à�‰ð õ 	r   c                 ó&   • U R                  S5        g)z0Imports in class scope can be used through self.zf
        class c:
            import i
            def __init__(self):
                self.i
        Nrx   rY   s    r   Útest_importedInClassÚTest.test_importedInClass­  r¡  r   c                 ó&   • U R                  S5        g)zG
Method named 'foo' with default args referring to module named 'foo'.
z€
        import foo

        class Thing(object):
            def foo(self, parser=foo.parse_foo):
                pass
        Nrx   rY   s    r   Ú!test_importUsedInMethodDefinitionÚ&Test.test_importUsedInMethodDefinition¶  s   € ð 	�‰ð õ 	r   c                 óH   • U R                  S5        U R                  S5        g)z__future__ is special.zfrom __future__ import divisionze
        "docstring is allowed before future import"
        from __future__ import division
        Nrx   rY   s    r   Útest_futureImportÚTest.test_futureImportÂ  s    € à�‰Ð5Ô6Ø�‰ð õ 	r   c                 ó„   • U R                  S[        R                  5        U R                  S[        R                  5        g)z4
__future__ imports must come before anything else.
z?
        x = 5
        from __future__ import division
        zY
        from foo import bar
        from __future__ import division
        bar
        N)rV   rW   ÚLateFutureImportrY   s    r   Útest_futureImportFirstÚTest.test_futureImportFirstÊ  s>   € ð 	�‰ð ô ×Ñô	!ð 	�‰ð ô ×Ñõ		!r   c                 ó&   • U R                  S5        g)z?__future__ is special, but names are injected in the namespace.zŽ
        from __future__ import division
        from __future__ import print_function

        assert print_function is not division
        Nrx   rY   s    r   Útest_futureImportUsedÚTest.test_futureImportUsedØ  r¡  r   c                 óD   • U R                  S[        R                  5        g)z0Importing undefined names from __future__ fails.z8
        from __future__ import print_statement
        N©rV   rW   ÚFutureFeatureNotDefinedrY   s    r   Útest_futureImportUndefinedÚTest.test_futureImportUndefinedá  ó   € à�‰ð ä×&Ñ&õ	(r   c                 óD   • U R                  S[        R                  5        g)z$Importing '*' from __future__ fails.z*
        from __future__ import *
        Nr³  rY   s    r   Útest_futureImportStarÚTest.test_futureImportStarç  r·  r   r\   N)hr]   r^   r_   r`   rf   rp   ru   ry   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Ï   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&  r)  r,  r0  r3  r6  r9  r<  r?  rB  rE  rI  rL  rO  rR  rU  rX  r[  r^  rg  rl  rp  rs  rv  ry  r|  r  rƒ  r‰  rŒ  r�  r’  r•  r˜  r›  r
   rŸ  r£  r¦  r©  r­  r°  rµ  r¹  ra   r\   r   r   rc   rc   g   s  † òOò6ò.<ò/ò)ò
?òHò

,òò,ò
òòò	%ò
ò	òò%ò5ò4ò ò$%ò	ò
òò òò!ò?ò4òòòòò+òòòòòò(ò
(ò(ò&ò.ò"0ò,ò-ò
'ò(òòòòòò)òò-ò3ò-ò>òò
òò	òò1ò-ò6ò
/ò.òòòò0ò*<ò@.ò&ò5ò%òòò ò <ò+òòòò%ò$ñ 
ˆ&ƒ\ñó ðòò
òò!òò(õ(r   rc   c                   ó„   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rSrg)ÚTestSpecialAlliî  z@
Tests for suppression of unused import warnings by C{__all__}.
c                 ób   • U R                  S[        R                  [        R                  5        g)zX
An C{__all__} definition does not suppress unused import warnings in a
function scope.
zQ
        def foo():
            import bar
            __all__ = ["bar"]
        N)rV   rW   rX   r  rY   s    r   Útest_ignoredInFunctionÚ%TestSpecialAll.test_ignoredInFunctionò  s&   € ð
 	�‰ð ô �^‰^œQ×-Ñ-õ		/r   c                 óD   • U R                  S[        R                  5        g)zO
An C{__all__} definition in a class does not suppress unused import warnings.
zM
        import bar
        class foo:
            __all__ = ["bar"]
        NrU   rY   s    r   Útest_ignoredInClassÚ"TestSpecialAll.test_ignoredInClassý  s   € ð 	�‰ð ô �^‰^õ		r   c                 óD   • U R                  S[        R                  5        g )Nz:
        import bar
        (__all__,) = ("foo",)
        rU   rY   s    r   Ú'test_ignored_when_not_directly_assignedÚ6TestSpecialAll.test_ignored_when_not_directly_assigned  s   € Ø�‰ð ô �^‰^õ	r   c                 óH   • U R                  S5        U R                  S5        g)zV
If a name is imported and unused but is named in C{__all__}, no warning
is reported.
z6
        import foo
        __all__ = ["foo"]
        z7
        import foo
        __all__ = ("foo",)
        Nrx   rY   s    r   Útest_warningSuppressedÚ%TestSpecialAll.test_warningSuppressed  s(   € ð
 	�‰ð ô 	ð 	�‰ð õ 	r   c                 ób   • U R                  S[        R                  [        R                  5        g)z3
The C{__all__} variable is defined incrementally.
z�
        import a
        import c
        __all__ = ['a']
        __all__ += ['b']
        if 1 < 3:
            __all__ += ['c', 'd']
        N©rV   rW   ÚUndefinedExportrY   s    r   Útest_augmentedAssignmentÚ'TestSpecialAll.test_augmentedAssignment  s(   € ð 	�‰ð ô ×Ñ¤× 1Ñ 1õ	3r   c                 óž   • U R                  S[        R                  [        R                  [        R                  [        R                  5        g)z@
The C{__all__} variable is defined through list concatenation.
zD
        import sys
        __all__ = ['a'] + ['b'] + ['c']
        N©rV   rW   rË  rX   rY   s    r   Ú"test_list_concatenation_assignmentÚ1TestSpecialAll.test_list_concatenation_assignment(  ó7   € ð 	�‰ð ô ×Ñ¤× 1Ñ 1´1×3DÑ3DÄaÇnÁnõ	Vr   c                 óž   • U R                  S[        R                  [        R                  [        R                  [        R                  5        g)zA
The C{__all__} variable is defined through tuple concatenation.
zG
        import sys
        __all__ = ('a',) + ('b',) + ('c',)
        NrÏ  rY   s    r   Ú#test_tuple_concatenation_assignmentÚ2TestSpecialAll.test_tuple_concatenation_assignment1  rÒ  r   c                 ó&   • U R                  S5        g )NzF
        from foo import bar
        __all__ = [bar.__name__]
        rx   rY   s    r   Útest_all_with_attributesÚ'TestSpecialAll.test_all_with_attributes:  rÔ   r   c                 ó&   • U R                  S5        g )Nz=
        from foo import bar
        __all__ = [bar]
        rx   rY   s    r   Útest_all_with_namesÚ"TestSpecialAll.test_all_with_names@  s   € à�‰ð õ 	r   c                 ó&   • U R                  S5        g )Nzs
        from foo import bar
        from bar import baz
        __all__ = [bar.__name__] + [baz.__name__]
        rx   rY   s    r   Útest_all_with_attributes_addedÚ-TestSpecialAll.test_all_with_attributes_addedG  rÃ   r   c                 ó&   • U R                  S5        g )Nzi
        from foo import bar
        from foo import baz
        __all__ = ['bar', baz.__name__]
        rx   rY   s    r   Ú%test_all_mixed_attributes_and_stringsÚ4TestSpecialAll.test_all_mixed_attributes_and_stringsN  rÃ   r   c                 óv   • U R                  S[        R                  5        S H  nU R                  SUS9  M     g)zI
If C{__all__} includes a name which is not bound, a warning is emitted.
z#
        __all__ = ["foo"]
        )zfoo/__init__.pyz__init__.pyz+
            __all__ = ["foo"]
            )ÚfilenameNrÊ  )r   rã  s     r   Útest_unboundExportedÚ#TestSpecialAll.test_unboundExportedU  sC   € ð 	�‰ð ä×Ñô	 ó ;ˆHØ�K‰Kð à"ð ó $ò ;r   c                 óž   • U R                  S[        R                  [        R                  [        R                  [        R                  5        g)z&
Report undefined if import * is used
zT
        from math import *
        __all__ = ['sin', 'cos']
        csc(1)
        N)rV   rW   re  ÚImportStarUsagerY   s    r   Útest_importStarExportedÚ&TestSpecialAll.test_importStarExportedd  s9   € ð 	�‰ð ô ×Ñœq×0Ñ0´!×2CÑ2CÄQ×EVÑEVõ		Xr   c                 ób   • U R                  S[        R                  [        R                  5        g)z8Report unused import when not needed to satisfy __all__.zL
        from foolib import *
        a = 1
        __all__ = ['a']
        N)rV   rW   re  rX   rY   s    r   Útest_importStarNotExportedÚ)TestSpecialAll.test_importStarNotExportedn  s$   € à�‰ð ô ×ÑœqŸ~™~õ		/r   c                 óH   • U R                  S5        U R                  S5        g)zB
Using a global in a generator expression results in no warnings.
z!import fu; (fu for _ in range(1))z&import fu; (1 for _ in range(1) if fu)Nrx   rY   s    r   Útest_usedInGenExpÚ TestSpecialAll.test_usedInGenExpv  s   € ð 	�‰Ð7Ô8Ø�‰Ð<Õ=r   c                 ób   • U R                  S[        R                  [        R                  5        g)zk
Re-using a global name as the loop variable for a generator
expression results in a redefinition warning.
z!import fu; (1 for fu in range(1))Nrs   rY   s    r   Útest_redefinedByGenExpÚ%TestSpecialAll.test_redefinedByGenExp}  s"   € ð
 	�‰Ð7Ü×*Ñ*¬A¯N©Nõ	<r   c                 óˆ   • U R                  S5        U R                  S5        U R                  S[        R                  5        g)z¡
Using a global name in a decorator statement results in no warnings,
but using an undefined name in a decorator statement results in an
undefined name warning.
zm
        from interior import decorate
        @decorate
        def f():
            return "hello"
        zv
        from interior import decorate
        @decorate('value')
        def f():
            return "hello"
        zG
        @decorate
        def f():
            return "hello"
        Nr¼   rY   s    r   Útest_usedAsDecoratorÚ#TestSpecialAll.test_usedAsDecorator…  óD   € ð 	�‰ð ô 	ð 	�‰ð ô 	ð 	�‰ð ô �_‰_õ		r   c                 óˆ   • U R                  S5        U R                  S5        U R                  S[        R                  5        g)zœ
Using an imported name as a class decorator results in no warnings,
but using an undefined name as a class decorator results in an
undefined name warning.
ze
        from interior import decorate
        @decorate
        class foo:
            pass
        zl
        from interior import decorate
        @decorate("foo")
        class bar:
            pass
        z?
        @decorate
        class foo:
            pass
        Nr¼   rY   s    r   Útest_usedAsClassDecoratorÚ(TestSpecialAll.test_usedAsClassDecoratorŸ  rö  r   r\   N)r]   r^   r_   r`   Ú__doc__r¾  rÁ  rÄ  rÇ  rÌ  rÐ  rÔ  r×  rÚ  rÝ  rà  rä  rè  rë  rî  rñ  rô  rø  ra   r\   r   r   r¼  r¼  î  sd   † ñò	/òòòò3òVòVòòòòò$òXò/ò>ò<òõ4r   r¼  N)Úpyflakesr   rW   Úpyflakes.checkerr   r   r   r   r   Úpyflakes.test.harnessr	   r
   r   rc   r¼  r\   r   r   Ú<module>rþ     sC   ðÝ "÷õ ÷ 1ôX6˜Hô X6ôvD(ˆ8ô D(ôNI�Xõ Ir   