§
    îyIf§ƒ  ã                   ó’   — d dl mZ d dlmZmZmZmZmZ d dl	m
Z
mZ  G d„ de
¦  «        Z G d„ de
¦  «        Z G d„ d	e
¦  «        Zd
S )é    )Úmessages)ÚFutureImportationÚImportationÚImportationFromÚStarImportationÚSubmoduleImportation)ÚTestCaseÚskipc                   ót   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestImportationObjectc                 ól   — t          dd d¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )NÚazimport a©r   Úsource_statementÚstr©ÚselfÚbindings     úN/var/www/piapp/venv/lib/python3.11/site-packages/pyflakes/test/test_imports.pyÚtest_import_basicz'TestImportationObject.test_import_basic   sD   € Ý˜c 4¨Ñ-Ô-ˆØÔ'¨:Ò5Ð5Ð5Ð5Ý�7‰|Œ|˜sÒ"Ð"Ð"Ð"Ð"Ð"ó    c                 ól   — t          dd d¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )NÚcr   zimport a as cza as cr   r   s     r   Útest_import_asz$TestImportationObject.test_import_as   sD   € Ý˜c 4¨Ñ-Ô-ˆØÔ'¨?Ò:Ð:Ð:Ð:Ý�7‰|Œ|˜xÒ'Ð'Ð'Ð'Ð'Ð'r   c                 ój   — t          dd ¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Núa.bz
import a.b)r   r   r   r   s     r   Útest_import_submodulez+TestImportationObject.test_import_submodule   sB   € Ý& u¨dÑ3Ô3ˆØÔ'¨<Ò7Ð7Ð7Ð7Ý�7‰|Œ|˜uÒ$Ð$Ð$Ð$Ð$Ð$r   c                 ól   — t          dd d¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Nr   r   zimport a.b as cúa.b as cr   r   s     r   Útest_import_submodule_asz.TestImportationObject.test_import_submodule_as   sE   € å˜c 4¨Ñ/Ô/ˆØÔ'Ð+<Ò<Ð<Ð<Ð<Ý�7‰|Œ|˜zÒ)Ð)Ð)Ð)Ð)Ð)r   c                 ól   — t          dd d¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Nr   r   zimport a.b as aza.b as ar   r   s     r   Ú$test_import_submodule_as_source_namez:TestImportationObject.test_import_submodule_as_source_name#   sE   € Ý˜c 4¨Ñ/Ô/ˆØÔ'Ð+<Ò<Ð<Ð<Ð<Ý�7‰|Œ|˜zÒ)Ð)Ð)Ð)Ð)Ð)r   c                 ón   — t          dd dd¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Nr   ú.zfrom . import az.a©r   r   r   r   s     r   Útest_importfrom_relativez.TestImportationObject.test_importfrom_relative(   sG   € Ý! # t¨S°#Ñ6Ô6ˆØÔ'Ð+<Ò<Ð<Ð<Ð<Ý�7‰|Œ|˜tÒ#Ð#Ð#Ð#Ð#Ð#r   c                 ón   — t          dd dd¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Nr   ú..zfrom .. import aú..ar%   r   s     r   Útest_importfrom_relative_parentz5TestImportationObject.test_importfrom_relative_parent-   sG   € Ý! # t¨T°3Ñ7Ô7ˆØÔ'Ð+=Ò=Ð=Ð=Ð=Ý�7‰|Œ|˜uÒ$Ð$Ð$Ð$Ð$Ð$r   c                 ón   — t          dd dd¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )NÚbr)   zfrom ..a import bz..a.br%   r   s     r   Ú$test_importfrom_relative_with_modulez:TestImportationObject.test_importfrom_relative_with_module2   óG   € Ý! # t¨U°CÑ8Ô8ˆØÔ'Ð+>Ò>Ð>Ð>Ð>Ý�7‰|Œ|˜wÒ&Ð&Ð&Ð&Ð&Ð&r   c                 ón   — t          dd dd¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Nr   r)   r,   zfrom ..a import b as cz
..a.b as cr%   r   s     r   Ú'test_importfrom_relative_with_module_asz=TestImportationObject.test_importfrom_relative_with_module_as7   óG   € Ý! # t¨U°CÑ8Ô8ˆØÔ'Ð+CÒCÐCÐCÐCÝ�7‰|Œ|˜|Ò+Ð+Ð+Ð+Ð+Ð+r   c                 ón   — t          dd dd¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Nr,   r   zfrom a import br   r%   r   s     r   Útest_importfrom_memberz,TestImportationObject.test_importfrom_member<   sG   € Ý! # t¨S°#Ñ6Ô6ˆØÔ'Ð+<Ò<Ð<Ð<Ð<Ý�7‰|Œ|˜uÒ$Ð$Ð$Ð$Ð$Ð$r   c                 ón   — t          dd dd¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Nr   r   zfrom a.b import cza.b.cr%   r   s     r   Ú test_importfrom_submodule_memberz6TestImportationObject.test_importfrom_submodule_memberA   r.   r   c                 ón   — t          dd dd¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Nr   r   r,   zfrom a import b as cr   r%   r   s     r   Útest_importfrom_member_asz/TestImportationObject.test_importfrom_member_asF   sG   € Ý! # t¨S°#Ñ6Ô6ˆØÔ'Ð+AÒAÐAÐAÐAÝ�7‰|Œ|˜zÒ)Ð)Ð)Ð)Ð)Ð)r   c                 ón   — t          dd dd¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )NÚdr   r   zfrom a.b import c as dz
a.b.c as dr%   r   s     r   Ú#test_importfrom_submodule_member_asz9TestImportationObject.test_importfrom_submodule_member_asK   r1   r   c                 ój   — t          dd ¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Nr   zfrom a.b import *za.b.*©r   r   r   r   s     r   Útest_importfrom_starz*TestImportationObject.test_importfrom_starP   sC   € Ý! %¨Ñ.Ô.ˆØÔ'Ð+>Ò>Ð>Ð>Ð>Ý�7‰|Œ|˜wÒ&Ð&Ð&Ð&Ð&Ð&r   c                 ój   — t          dd ¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Nz.bzfrom .b import *z.b.*r<   r   s     r   Útest_importfrom_star_relativez3TestImportationObject.test_importfrom_star_relativeU   sC   € Ý! $¨Ñ-Ô-ˆØÔ'Ð+=Ò=Ð=Ð=Ð=Ý�7‰|Œ|˜vÒ%Ð%Ð%Ð%Ð%Ð%r   c                 ól   — t          dd d ¦  «        }|j        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )NÚprint_functionz%from __future__ import print_functionz__future__.print_function)r   r   r   r   s     r   Útest_importfrom_futurez,TestImportationObject.test_importfrom_futureZ   sG   € Ý#Ð$4°d¸DÑAÔAˆØÔ'Ð+RÒRÐRÐRÐRÝ�7‰|Œ|Ð:Ò:Ð:Ð:Ð:Ð:Ð:r   c                 óF   — |                       dt          j        ¦  «         dS )zm
        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_underscorez2TestImportationObject.test_unusedImport_underscore_   s!   € ð
 	�ŠÐ$¥a¤nÑ5Ô5Ð5Ð5Ð5r   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r    r"   r&   r*   r-   r0   r3   r5   r7   r:   r=   r?   rB   rI   © r   r   r   r      s  € € € € € ð#ð #ð #ð
(ð (ð (ð
%ð %ð %ð
*ð *ð *ð*ð *ð *ð
$ð $ð $ð
%ð %ð %ð
'ð 'ð 'ð
,ð ,ð ,ð
%ð %ð %ð
'ð 'ð 'ð
*ð *ð *ð
,ð ,ð ,ð
'ð 'ð 'ð
&ð &ð &ð
;ð ;ð ;ð
6ð 6ð 6ð 6ð 6r   r   c                   ó|  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/d.„ Z0d/„ Z1d0„ Z2d1„ Z3d2„ Z4d3„ Z5d4„ Z6d5„ Z7d6„ Z8d7„ Z9d8„ Z:d9„ Z;d:„ Z<d;„ Z=d<„ Z>d=„ Z?d>„ Z@d?„ ZAd@„ ZBdA„ ZCdB„ ZDdC„ ZEdD„ ZFdE„ ZGdF„ ZHdG„ ZIdH„ ZJdI„ ZKdJ„ ZLdK„ ZMdL„ ZNdM„ ZOdN„ ZPdO„ ZQdP„ ZRdQ„ ZSdR„ ZTdS„ ZUdT„ ZVdU„ ZWdV„ ZXdW„ ZYdX„ ZZdY„ Z[dZ„ Z\ e]d[¦  «        d\„ ¦   «         Z^d]„ Z_d^„ Z`d_„ Zad`„ Zbda„ Zcdb„ Zddc„ ZeddS )eÚTestc                 ó²   — |                       dt          j        t          j        ¦  «         |                       dt          j        t          j        ¦  «         d S )Nzimport fu, barzfrom baz import fu, barrD   rH   s    r   Útest_unusedImportzTest.test_unusedImporti   s>   € Ø�ŠÐ$¥a¤nµa´nÑEÔEÐEØ�ŠÐ-­q¬~½q¼~ÑNÔNÐNÐNÐNr   c                 ób  — |                       dt          j        ¦  «         |                       dt          j        ¦  «         |                       dt          j        ¦  «         |                       dt          j        ¦  «         |                       dt          j        ¦  «         |                       dt          j        ¦  «         |                       dt          j        ¦  «         |                       dt          j        ¦  «         |                       d	t          j        ¦  «         |                       dt          j        ¦  «        }|j        d
         }|j        dk    sJ ‚|j        dk    sJ ‚|                       dt          j        ¦  «        }|j        d
         }|j        dk    sJ ‚|j        dk    sJ ‚d S )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)rE   rF   rG   r   ÚmessageÚmessage_args©r   ÚcheckerÚerrors      r   Útest_unusedImport_relativezTest.test_unusedImport_relativem   sn  € Ø�ŠÐ&­¬Ñ7Ô7Ð7Ø�ŠÐ-­q¬~Ñ>Ô>Ð>Ø�ŠÐ'­¬Ñ8Ô8Ð8Ø�ŠÐ(­!¬.Ñ9Ô9Ð9Ø�ŠÐ.µ´Ñ?Ô?Ð?Ø�ŠÐ)­1¬>Ñ:Ô:Ð:Ø�ŠÐ*­A¬NÑ;Ô;Ð;Ø�ŠÐ+­Q¬^Ñ<Ô<Ð<Ø�ŠÐ2µA´NÑCÔCÐCà—+’+Ð0µ!´.ÑAÔAˆàÔ  Ô#ˆØŒ}Ð 8Ò8Ð8Ð8Ð8ØÔ! YÒ.Ð.Ð.Ð.à—+’+Ð7½¼ÑHÔHˆàÔ  Ô#ˆØŒ}Ð 8Ò8Ð8Ð8Ð8ØÔ!Ð%5Ò5Ð5Ð5Ð5Ð5Ð5r   c                 ó²   — |                       dt          j        t          j        ¦  «         |                       dt          j        t          j        ¦  «         d S )Nzimport fu as FU, bar as FUz#from moo import fu as FU, bar as FU©rE   rF   ÚRedefinedWhileUnusedrG   rH   s    r   Útest_aliasedImportzTest.test_aliasedImport„   sR   € Ø�ŠÐ0ÝÔ*­A¬Nñ	<ô 	<ð 	<à�ŠÐ9ÝÔ*­A¬Nñ	<ô 	<ð 	<ð 	<ð 	<r   c                 ó„   — |                       d¦  «         |                       d¦  «         |                       d¦  «         dS )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©rE   rH   s    r   Útest_aliasedImportShadowModulez#Test.test_aliasedImportShadowModuleŠ   sA   € à�ŠÐ4Ñ5Ô5Ð5Ø�ŠÐ)Ñ*Ô*Ð*Ø�ŠÐ-Ñ.Ô.Ð.Ð.Ð.r   c                 ó„   — |                       d¦  «         |                       d¦  «         |                       d¦  «         d S )Nzimport fu; print(fu)zfrom baz import fu; print(fu)zimport fu; del fur`   rH   s    r   Útest_usedImportzTest.test_usedImport�   sA   € Ø�ŠÐ*Ñ+Ô+Ð+Ø�ŠÐ3Ñ4Ô4Ð4Ø�ŠÐ'Ñ(Ô(Ð(Ð(Ð(r   c                 ó®   — |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         d S )Nzfrom . import fu; assert fuzfrom .bar import fu; assert fuzfrom .. import fu; assert fuz'from ..bar import fu as baz; assert bazr`   rH   s    r   Útest_usedImport_relativezTest.test_usedImport_relative•   sT   € Ø�ŠÐ1Ñ2Ô2Ð2Ø�ŠÐ4Ñ5Ô5Ð5Ø�ŠÐ2Ñ3Ô3Ð3Ø�ŠÐ=Ñ>Ô>Ð>Ð>Ð>r   c                 óÆ   — |                       dt          j        ¦  «         |                       dt          j        ¦  «         |                       dt          j        ¦  «         d S )Nzimport fu; fu = 3zimport fu; fu, bar = 3zimport fu; [fu, bar] = 3©rE   rF   r]   rH   s    r   Útest_redefinedWhileUnusedzTest.test_redefinedWhileUnused›   sP   € Ø�ŠÐ'­Ô)?Ñ@Ô@Ð@Ø�ŠÐ,­aÔ.DÑEÔEÐEØ�ŠÐ.µÔ0FÑGÔGÐGÐGÐGr   c                 óF   — |                       dt          j        ¦  «         dS )ze
        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.pathNrg   rH   s    r   Útest_redefinedIfzTest.test_redefinedIf    s1   € ð
 	�Šð õ
 Ô*ñ	,ô 	,ð 	,ð 	,ð 	,r   c                 ó0   — |                       d¦  «         dS )zl
        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.pathNr`   rH   s    r   Útest_redefinedIfElsezTest.test_redefinedIfElse¬   s)   € ð
 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 óF   — |                       dt          j        ¦  «         dS )za
        Test that importing a module twice in a try block
        does raise a warning.
        zj
        try:
            import os
            import os
        except:
            pass
        os.pathNrg   rH   s    r   Útest_redefinedTryzTest.test_redefinedTry¹   s1   € ð
 	�Šð õ Ô*ñ	,ô 	,ð 	,ð 	,ð 	,r   c                 ó0   — |                       d¦  «         dS )zp
        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.pathNr`   rH   s    r   Útest_redefinedTryExceptzTest.test_redefinedTryExceptÆ   s)   € ð
 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         dS )z~
        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.pathNr`   rH   s    r   Útest_redefinedTryNestedzTest.test_redefinedTryNestedÒ   s)   € ð
 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         d S )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)
        r`   rH   s    r   Útest_redefinedTryExceptMultiz!Test.test_redefinedTryExceptMultià   s'   € Ø�Šð 
ñ 
	ô 
	ð 
	ð 
	ð 
	r   c                 óF   — |                       dt          j        ¦  «         d S )Nz¦
        try:
            from aa import mixer
        except ImportError:
            pass
        else:
            from bb import mixer
        mixer(123)
        rg   rH   s    r   Útest_redefinedTryElsezTest.test_redefinedTryElseí   s/   € Ø�Šð õ Ô#ñ	%ô 	%ð 	%ð 	%ð 	%r   c                 ó0   — |                       d¦  «         d S )NzÙ
        try:
            import funca
        except ImportError:
            from bb import funca
            from bb import funcb
        else:
            from bbb import funcb
        print(funca, funcb)
        r`   rH   s    r   Útest_redefinedTryExceptElsez Test.test_redefinedTryExceptElseø   s'   € Ø�Šð 	ñ 		ô 		ð 		ð 		ð 		r   c                 ó0   — |                       d¦  «         d S )Nz¡
        try:
            from aa import a
        except ImportError:
            from bb import a
        finally:
            a = 42
        print(a)
        r`   rH   s    r   Útest_redefinedTryExceptFinallyz#Test.test_redefinedTryExceptFinally  s'   € Ø�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         d S )Nzà
        try:
            import b
        except ImportError:
            b = Ellipsis
            from bb import a
        else:
            from aa import a
        finally:
            a = 42
        print(a, b)
        r`   rH   s    r   Ú"test_redefinedTryExceptElseFinallyz'Test.test_redefinedTryExceptElseFinally  s'   € Ø�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 óF   — |                       dt          j        ¦  «         d S )Nz>
        import fu
        def fu():
            pass
        rg   rH   s    r   Útest_redefinedByFunctionzTest.test_redefinedByFunction  ó/   € Ø�Šð õ Ô#ñ		%ô 	%ð 	%ð 	%ð 	%r   c                 ó\   — |                       dt          j        t          j        ¦  «         dS )úr
        Test that shadowing a global name with a nested function definition
        generates a warning.
        zx
        import fu
        def bar():
            def baz():
                def fu():
                    pass
        Nr\   rH   s    r   Útest_redefinedInNestedFunctionz#Test.test_redefinedInNestedFunction$  s5   € ð
 	�Šð õ Ô#¥Q¤^ñ	5ô 	5ð 	5ð 	5ð 	5r   c                 óˆ   — |                       dt          j        t          j        t          j        t          j        ¦  «         dS )r�   zŽ
        import fu
        def bar():
            import fu
            def baz():
                def fu():
                    pass
        Nr\   rH   s    r   Ú#test_redefinedInNestedFunctionTwicez(Test.test_redefinedInNestedFunctionTwice1  s?   € ð
 	�Šð õ Ô*­AÔ,BÝ”N¥A¤Nñ		4ô 		4ð 		4ð 		4ð 		4r   c                 ó0   — |                       d¦  «         dS )zŒ
        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()
        Nr`   rH   s    r   Útest_redefinedButUsedLaterzTest.test_redefinedButUsedLaterA  s)   € ð
 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 óF   — |                       dt          j        ¦  «         d S )Nz>
        import fu
        class fu:
            pass
        rg   rH   s    r   Útest_redefinedByClasszTest.test_redefinedByClassS  r   r   c                 ó0   — |                       d¦  «         dS )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
        Nr`   rH   s    r   Útest_redefinedBySubclasszTest.test_redefinedBySubclassZ  ó)   € ð
 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         dS )zi
        Test that shadowing a global with a class attribute does not produce a
        warning.
        zS
        import fu
        class bar:
            fu = 1
        print(fu)
        Nr`   rH   s    r   Útest_redefinedInClasszTest.test_redefinedInClasse  s)   € ð
 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 óp   — |                       d¦  «         |                       dt          j        ¦  «         dS )zN
        Test that import within class is a locally scoped attribute.
        z2
        class bar:
            import fu
        z>
        class bar:
            import fu

        fu
        N©rE   rF   ÚUndefinedNamerH   s    r   Útest_importInClasszTest.test_importInClassq  sM   € ð 	�Šð ñ 	ô 	ð 	ð
 	�Šð õ
 Œ_ñ	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         d S )NzD
        import fu
        def fun():
            print(fu)
        r`   rH   s    r   Útest_usedInFunctionzTest.test_usedInFunction�  ó'   € Ø�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó†   — |                       dt          j        t          j        ¦  «         |                       d¦  «         d S )NzF
        import fu
        def fun(fu):
            print(fu)
        zX
        import fu
        def fun(fu):
            print(fu)
        print(fu)
        ©rE   rF   rG   r]   rH   s    r   Útest_shadowedByParameterzTest.test_shadowedByParameterˆ  sP   € Ø�Šð õ Œ^�QÔ3ñ		5ô 	5ð 	5ð 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         d S )Nz	fu = Noner`   rH   s    r   Útest_newAssignmentzTest.test_newAssignment–  s   € Ø�Š�KÑ Ô Ð Ð Ð r   c                 óp   — |                       d¦  «         |                       dt          j        ¦  «         d S )Nzimport fu; fu.bar.bazzimport fu; "bar".fu.bazrD   rH   s    r   Útest_usedInGetattrzTest.test_usedInGetattr™  s2   € Ø�ŠÐ+Ñ,Ô,Ð,Ø�ŠÐ-­q¬~Ñ>Ô>Ð>Ð>Ð>r   c                 ó0   — |                       d¦  «         d S )Nzimport fu; print(fu.bar[1:])r`   rH   s    r   Útest_usedInSlicezTest.test_usedInSlice�  s   € Ø�ŠÐ2Ñ3Ô3Ð3Ð3Ð3r   c                 ó0   — |                       d¦  «         d S )Nz6
        import fu
        if True: print(fu)
        r`   rH   s    r   Útest_usedInIfBodyzTest.test_usedInIfBody   ó'   € Ø�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         d S )Nz/
        import fu
        if fu: pass
        r`   rH   s    r   Útest_usedInIfConditionalzTest.test_usedInIfConditional¦  r    r   c                 ó0   — |                       d¦  «         d S )NzH
        import fu
        if False: pass
        elif fu: pass
        r`   rH   s    r   Útest_usedInElifConditionalzTest.test_usedInElifConditional¬  r”   r   c                 ó0   — |                       d¦  «         d S )NzJ
        import fu
        if False: pass
        else: print(fu)
        r`   rH   s    r   Útest_usedInElsezTest.test_usedInElse³  r”   r   c                 ó0   — |                       d¦  «         d S )Nzimport fu; fu.bar()r`   rH   s    r   Útest_usedInCallzTest.test_usedInCallº  s   € Ø�ŠÐ)Ñ*Ô*Ð*Ð*Ð*r   c                 ó0   — |                       d¦  «         d S )NzC
        import fu
        class bar:
            bar = fu
        r`   rH   s    r   Útest_usedInClasszTest.test_usedInClass½  r”   r   c                 ó0   — |                       d¦  «         d S )NzO
        import fu
        class bar(object, fu.baz):
            pass
        r`   rH   s    r   Útest_usedInClassBasezTest.test_usedInClassBaseÄ  r”   r   c                 ó0   — |                       d¦  «         d S )NzR
        import fu
        def bleh():
            pass
        print(fu)
        r`   rH   s    r   Útest_notUsedInNestedScopezTest.test_notUsedInNestedScopeË  ó'   € Ø�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         d S )NzN
        import fu
        for bar in range(9):
            print(fu)
        r`   rH   s    r   Útest_usedInForzTest.test_usedInForÓ  r”   r   c                 ó0   — |                       d¦  «         d S )Nzn
        import fu
        for bar in range(10):
            pass
        else:
            print(fu)
        r`   rH   s    r   Útest_usedInForElsezTest.test_usedInForElseÚ  ó'   € Ø�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 óF   — |                       dt          j        ¦  «         d S )NzH
        import fu
        for fu in range(2):
            pass
        ©rE   rF   ÚImportShadowedByLoopVarrH   s    r   Útest_redefinedByForzTest.test_redefinedByForã  s/   € Ø�Šð õ Ô&ñ		(ô 	(ð 	(ð 	(ð 	(r   c                 óF   — |                       dt          j        ¦  «         dS )zi
        Test that shadowing a global name with a for loop variable generates a
        warning.
        zS
        import fu
        fu.bar()
        for fu in ():
            pass
        Nr¶   rH   s    r   Útest_shadowedByForzTest.test_shadowedByForê  s1   € ð
 	�Šð õ
 Ô&ñ	(ô 	(ð 	(ð 	(ð 	(r   c                 ó†   — |                       dt          j        ¦  «         |                       dt          j        ¦  «         dS )z‚
        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¶   rH   s    r   Útest_shadowedByForDeepzTest.test_shadowedByForDeepö  sV   € ð
 	�Šð õ
 Ô&ñ	(ô 	(ð 	(ð 	�Šð õ
 Ô&ñ	(ô 	(ð 	(ð 	(ð 	(r   c                 ó0   — |                       d¦  «         d S )NzD
        import fu
        def fun():
            return fu
        r`   rH   s    r   Útest_usedInReturnzTest.test_usedInReturn	  r”   r   c                 ó|  — |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d	¦  «         |                       d
¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         d S )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.barr`   rH   s    r   Útest_usedInOperatorszTest.test_usedInOperators  s%  € Ø�ŠÐ+Ñ,Ô,Ð,Ø�ŠÐ+Ñ,Ô,Ð,Ø�ŠÐ+Ñ,Ô,Ð,Ø�ŠÐ+Ñ,Ô,Ð,Ø�ŠÐ,Ñ-Ô-Ð-Ø�ŠÐ+Ñ,Ô,Ð,Ø�ŠÐ,Ñ-Ô-Ð-Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ,Ñ-Ô-Ð-Ø�ŠÐ+Ñ,Ô,Ð,Ø�ŠÐ+Ñ,Ô,Ð,Ø�ŠÐ+Ñ,Ô,Ð,Ø�ŠÐ,Ñ-Ô-Ð-Ø�ŠÐ,Ñ-Ô-Ð-Ð-Ð-r   c                 ó0   — |                       d¦  «         d S )Nzimport fu; assert fu.barr`   rH   s    r   Útest_usedInAssertzTest.test_usedInAssert!  s   € Ø�ŠÐ.Ñ/Ô/Ð/Ð/Ð/r   c                 ó0   — |                       d¦  «         d S )Nzimport fu; fu.bar[1]r`   rH   s    r   Útest_usedInSubscriptzTest.test_usedInSubscript$  s   € Ø�ŠÐ*Ñ+Ô+Ð+Ð+Ð+r   c                 ó„   — |                       d¦  «         |                       d¦  «         |                       d¦  «         d S )Nzimport fu; fu and Falsezimport fu; fu or Falsezimport fu; not fu.barr`   rH   s    r   Útest_usedInLogiczTest.test_usedInLogic'  sA   € Ø�ŠÐ-Ñ.Ô.Ð.Ø�ŠÐ,Ñ-Ô-Ð-Ø�ŠÐ+Ñ,Ô,Ð,Ð,Ð,r   c                 ó0   — |                       d¦  «         d S )Nzimport fu; [fu]r`   rH   s    r   Útest_usedInListzTest.test_usedInList,  s   € Ø�ŠÐ%Ñ&Ô&Ð&Ð&Ð&r   c                 ó0   — |                       d¦  «         d S )Nzimport fu; (fu,)r`   rH   s    r   Útest_usedInTuplezTest.test_usedInTuple/  s   € Ø�ŠÐ&Ñ'Ô'Ð'Ð'Ð'r   c                 ó0   — |                       d¦  «         d S ©Nz@
        import fu
        try: fu
        except: pass
        r`   rH   s    r   Útest_usedInTryzTest.test_usedInTry2  r”   r   c                 ó0   — |                       d¦  «         d S rÌ   r`   rH   s    r   Útest_usedInExceptzTest.test_usedInExcept9  r”   r   c                 óz   — t           j        g}|                     t           j        ¦  «          | j        dg|¢R Ž  d S )NzR
        import fu
        try: pass
        except Exception as fu: pass
        )rF   r]   ÚappendÚUnusedVariablerE   )r   Úexpecteds     r   Útest_redefinedByExceptzTest.test_redefinedByExcept@  sV   € ÝÔ*Ð+ˆà�Š�Ô(Ñ)Ô)Ð)ØˆŒð ð 	ð ð		ð 	ð 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         d S )Nz0
        import fu
        raise fu.bar
        r`   rH   s    r   Útest_usedInRaisezTest.test_usedInRaiseJ  r    r   c                 ó0   — |                       d¦  «         d S )NzC
        import fu
        def gen():
            yield fu
        r`   rH   s    r   Útest_usedInYieldzTest.test_usedInYieldP  r”   r   c                 óZ   — |                       d¦  «         |                       d¦  «         d S )Nzimport fu; {fu:None}zimport fu; {1:fu}r`   rH   s    r   Útest_usedInDictzTest.test_usedInDictW  s.   € Ø�ŠÐ*Ñ+Ô+Ð+Ø�ŠÐ'Ñ(Ô(Ð(Ð(Ð(r   c                 ó0   — |                       d¦  «         d S )NzC
        import fu
        def f(bar=fu):
            pass
        r`   rH   s    r   Útest_usedInParameterDefaultz Test.test_usedInParameterDefault[  r”   r   c                 ó0   — |                       d¦  «         d S )Nzimport fu; fu.bar = 1r`   rH   s    r   Útest_usedInAttributeAssignzTest.test_usedInAttributeAssignb  ó   € Ø�ŠÐ+Ñ,Ô,Ð,Ð,Ð,r   c                 ó0   — |                       d¦  «         d S )Nzimport fu; fu.bar(stuff=fu)r`   rH   s    r   Útest_usedInKeywordArgzTest.test_usedInKeywordArge  s   € Ø�ŠÐ1Ñ2Ô2Ð2Ð2Ð2r   c                 óZ   — |                       d¦  «         |                       d¦  «         d S )Nzimport fu; bar=fuzimport fu; n=0; n+=fur`   rH   s    r   Útest_usedInAssignmentzTest.test_usedInAssignmenth  s.   € Ø�ŠÐ'Ñ(Ô(Ð(Ø�ŠÐ+Ñ,Ô,Ð,Ð,Ð,r   c                 óZ   — |                       d¦  «         |                       d¦  «         d S )Nz!import fu; [fu for _ in range(1)]z&import fu; [1 for _ in range(1) if fu]r`   rH   s    r   Útest_usedInListCompzTest.test_usedInListCompl  s.   € Ø�ŠÐ7Ñ8Ô8Ð8Ø�ŠÐ<Ñ=Ô=Ð=Ð=Ð=r   c                 óZ   — |                       d¦  «         |                       d¦  «         d S )NzA
        import fu
        try: pass
        finally: fu
        zA
        import fu
        try: fu
        finally: pass
        r`   rH   s    r   Útest_usedInTryFinallyzTest.test_usedInTryFinallyp  sD   € Ø�Šð ñ 	ô 	ð 	ð 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 óZ   — |                       d¦  «         |                       d¦  «         d S )Nz;
        import fu
        while 0:
            fu
        z2
        import fu
        while fu: pass
        r`   rH   s    r   Útest_usedInWhilezTest.test_usedInWhile}  sD   € Ø�Šð ñ 	ô 	ð 	ð 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 óF   — |                       dt          j        ¦  «         dS )zt
        A 'global' statement shadowing an unused import should not prevent it
        from being reported.
        z6
        import fu
        def f(): global fu
        NrD   rH   s    r   Útest_usedInGlobalzTest.test_usedInGlobal‰  s0   € ð
 	�Šð õ Œ^ñ	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         dS )zt
        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()
        Nr`   rH   s    r   Útest_usedAndGlobalzTest.test_usedAndGlobal“  r‹   r   c                 ó0   — |                       d¦  «         dS )zn
        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()
        Nr`   rH   s    r   Útest_assignedToGlobalzTest.test_assignedToGlobalž  s)   € ð
 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó:   — d}|                       d|z  ¦  «         d S )Nzexec("print(1)", fu.bar)zimport fu; %sr`   )r   Ú	exec_stmts     r   Útest_usedInExeczTest.test_usedInExec¨  s$   € Ø.ˆ	Ø�Š�O iÑ/Ñ0Ô0Ð0Ð0Ð0r   c                 ó0   — |                       d¦  «         d S )Nzimport fu; lambda: fur`   rH   s    r   Útest_usedInLambdazTest.test_usedInLambda¬  rß   r   c                 ó†   — |                       dt          j        t          j        ¦  «         |                       d¦  «         d S )Nzimport fu; lambda fu: fuzimport fu; lambda fu: fu
fu()r–   rH   s    r   Útest_shadowedByLambdazTest.test_shadowedByLambda¯  s>   € Ø�ŠÐ.Ý”N¥AÔ$:ñ	<ô 	<ð 	<à�ŠÐ4Ñ5Ô5Ð5Ð5Ð5r   c                 ó0   — |                       d¦  «         d S )Nzimport fu; "meow"[::fu]r`   rH   s    r   Útest_usedInSliceObjzTest.test_usedInSliceObj´  s   € Ø�ŠÐ-Ñ.Ô.Ð.Ð.Ð.r   c                 ó\   — |                       dt          j        t          j        ¦  «         d S )Nz=
        def bar():
            import fu
        fu
        )rE   rF   rG   r�   rH   s    r   Útest_unusedInNestedScopezTest.test_unusedInNestedScope·  s2   € Ø�Šð õ Œ^�Qœ_ñ		.ô 	.ð 	.ð 	.ð 	.r   c                 óF   — |                       dt          j        ¦  «         d S )Nz`
        class bar:
            import fu
            def fun(self):
                fu
        r�   rH   s    r   Útest_methodsDontUseClassScopez"Test.test_methodsDontUseClassScope¾  s.   € Ø�Šð õ
 Œ_ñ	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         d S )NzX
        def a():
            def b():
                fu
            import fu
        r`   rH   s    r   Útest_nestedFunctionsNestScopez"Test.test_nestedFunctionsNestScopeÆ  r¯   r   c                 ó0   — |                       d¦  «         d S )Nz€
        def a():
            import fu
            class b:
                def c(self):
                    print(fu)
        r`   rH   s    r   Ú test_nestedClassAndFunctionScopez%Test.test_nestedClassAndFunctionScopeÎ  r´   r   c                 óÂ  — |                       dt          j        t          j        ¦  «         |                       dt          j        t          j        ¦  «         |                       dt          j        t          j        ¦  «        }|j        d         }|j                             d¦  «        sJ ‚|j        dk    sJ ‚|j        d         }|j        dk    sJ ‚|j        dk    sJ ‚d	S )
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é   rS   )zfu.*N©rE   rF   ÚImportStarUsedrG   r   rU   Ú
startswithrV   rW   s      r   Útest_importStarzTest.test_importStar×  sä   € à�ŠÐ&­Ô(8½!¼.ÑIÔIÐIØ�Šð õ
 Ô�qœ~ñ	/ô 	/ð 	/ð —+’+Ð0ÝÔ.µ´ñ@ô @ˆð Ô  Ô#ˆØŒ}×'Ò'Ð(JÑKÔKÐKÐKÐKØÔ! XÒ-Ð-Ð-Ð-àÔ  Ô#ˆØŒ}Ð 8Ò8Ð8Ð8Ð8ØÔ! ZÒ/Ð/Ð/Ð/Ð/Ð/r   c                 óÒ  — |                       dt          j        t          j        ¦  «         |                       dt          j        t          j        ¦  «         |                       dt          j        t          j        ¦  «        }|j        d         }|j                             d¦  «        sJ ‚|j        dk    sJ ‚|j        d         }|j        dk    sJ ‚|j        dk    sJ ‚|                       d	t          j        t          j        ¦  «        }|j        d         }|j                             d¦  «        sJ ‚|j        d
k    sJ ‚|j        d         }|j        dk    sJ ‚|j        dk    sJ ‚dS )z3Use of import * from a relative import is reported.zfrom .fu import *zU
        try:
            from .fu import *
        except:
            pass
        r   r  rT   r  rS   )z.fu.*úfrom .. import *©r(   )r
  Nr  rW   s      r   Útest_importStar_relativezTest.test_importStar_relativeì  s|  € à�ŠÐ'­Ô)9½1¼>ÑJÔJÐJØ�Šð õ
 Ô�qœ~ñ	/ô 	/ð 	/ð —+’+Ð1ÝÔ.µ´ñ@ô @ˆð Ô  Ô#ˆØŒ}×'Ò'Ð(JÑKÔKÐKÐKÐKØÔ! YÒ.Ð.Ð.Ð.àÔ  Ô#ˆØŒ}Ð 8Ò8Ð8Ð8Ð8ØÔ! [Ò0Ð0Ð0Ð0à—+’+Ð0ÝÔ.µ´ñ@ô @ˆð Ô  Ô#ˆØŒ}×'Ò'Ð(JÑKÔKÐKÐKÐKØÔ! XÒ-Ð-Ð-Ð-àÔ  Ô#ˆØŒ}Ð 8Ò8Ð8Ð8Ð8ØÔ!Ð%;Ò;Ð;Ð;Ð;Ð;Ð;r   c                 ó  — |                       dt          j        ¦  «         |                       dt          j        ¦  «         |                       dt          j        ¦  «        }|j        d         }|j        dk    sJ ‚|j        dk    sJ ‚dS )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 levelr  N)rE   rF   ÚImportStarNotPermittedr   rU   rV   rW   s      r   Útest_localImportStarzTest.test_localImportStar  s©   € à�Šð õ Ô%ñ	'ô 	'ð 	'ð 	�Šð õ Ô%ñ	'ô 	'ð 	'ð
 —+’+ð õ Ô%ñ'ô 'ˆð Ô  Ô#ˆØŒ}Ð QÒQÐQÐQÐQØÔ! XÒ-Ð-Ð-Ð-Ð-Ð-r   c                 ó0   — |                       d¦  «         dS )zP
        If a dotted name is imported and used, no warning is reported.
        z.
        import fu.bar
        fu.bar
        Nr`   rH   s    r   Útest_packageImportzTest.test_packageImport  s)   € ð 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 óF   — |                       dt          j        ¦  «         dS )zj
        If a dotted name is imported and not used, an unused import warning is
        reported.
        zimport fu.barNrD   rH   s    r   Útest_unusedPackageImportzTest.test_unusedPackageImport(  s    € ð
 	�Š�O¥Q¤^Ñ4Ô4Ð4Ð4Ð4r   c                 ó†   — |                       dt          j        ¦  «         |                       dt          j        ¦  «         dS )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
        Nrg   rH   s    r   Útest_duplicateSubmoduleImportz"Test.test_duplicateSubmoduleImport/  sV   € ð
 	�Šð õ Ô#ñ	%ô 	%ð 	%ð 	�Šð õ Ô#ñ		%ô 	%ð 	%ð 	%ð 	%r   c                 óZ   — |                       d¦  «         |                       d¦  «         dS )z‰
        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
        Nr`   rH   s    r   Útest_differentSubmoduleImportz"Test.test_differentSubmoduleImport>  sF   € ð
 	�Šð ñ 	ô 	ð 	ð 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 óZ   — |                       d¦  «         |                       d¦  «         dS )zC
        Usage of package marks submodule imports as used.
        z>
        import fu
        import fu.bar
        fu.x
        z>
        import fu.bar
        import fu
        fu.x
        Nr`   rH   s    r   Ú'test_used_package_with_submodule_importz,Test.test_used_package_with_submodule_importM  óF   € ð 	�Šð ñ 	ô 	ð 	ð 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 óZ   — |                       d¦  «         |                       d¦  «         dS )zL
        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()
        Nr`   rH   s    r   Ú0test_used_package_with_submodule_import_of_aliasz5Test.test_used_package_with_submodule_import_of_alias]  r  r   c                 óÂ   — |                       dt          j        ¦  «        }|j        d         }|j        dk    sJ ‚|j        dk    sJ ‚| j        r|j        dk    sndS J ‚dS )zR
        When a package and its submodule are imported, only report once.
        z1
        import fu
        import fu.bar
        r   rS   )zfu.baré   é   N)rE   rF   rG   r   rU   rV   ÚwithDoctestÚlinenorW   s      r   Ú)test_unused_package_with_submodule_importz.Test.test_unused_package_with_submodule_importm  s„   € ð —+’+ð õ Œ^ñô ˆð Ô  Ô#ˆØŒ}Ð 8Ò8Ð8Ð8Ð8ØÔ! \Ò1Ð1Ð1Ð1Ø$(Ô$4Ð;ˆuŒ|˜qÒ Ð Ð Ð Ð Ð Ð Ð Ð r   c                 ó®   — |                       d¦  «         |                       d¦  «         |                       d¦  «         |                       d¦  «         d S )Nzimport fu; fu = fuzimport fu; fu, bar = fuzimport fu; [fu, bar] = fuzimport fu; fu += fur`   rH   s    r   Útest_assignRHSFirstzTest.test_assignRHSFirstz  sT   € Ø�ŠÐ(Ñ)Ô)Ð)Ø�ŠÐ-Ñ.Ô.Ð.Ø�ŠÐ/Ñ0Ô0Ð0Ø�ŠÐ)Ñ*Ô*Ð*Ð*Ð*r   c                 ó0   — |                       d¦  «         d S )Nzp
        try:
            import fu
        except ImportError:
            import bar as fu
        fu
        r`   rH   s    r   Útest_tryingMultipleImportszTest.test_tryingMultipleImports€  r´   r   c                 ó0   — |                       d¦  «         d S )Nz`
        import fu
        def a():
            fu = 3
            return fu
        fu
        r`   rH   s    r   Útest_nonGlobalDoesNotRedefinez"Test.test_nonGlobalDoesNotRedefine‰  r´   r   c                 ó0   — |                       d¦  «         d S )Nz;
        def a():
            fu
        import fu
        r`   rH   s    r   Útest_functionsRunLaterzTest.test_functionsRunLater’  r”   r   c                 óF   — |                       dt          j        ¦  «         d S )NzG
        import fu
        def fu():
            fu
        fu
        rg   rH   s    r   Útest_functionNamesAreBoundNowz"Test.test_functionNamesAreBoundNow™  s/   € Ø�Šð õ
 Ô#ñ	%ô 	%ð 	%ð 	%ð 	%r   c                 ó0   — |                       d¦  «         d S )Nza = 1; a = 2r`   rH   s    r   Ú!test_ignoreNonImportRedefinitionsz&Test.test_ignoreNonImportRedefinitions¡  s   € Ø�Š�NÑ#Ô#Ð#Ð#Ð#r   Útodoc                 ó0   — |                       d¦  «         d S )NzY
        try:
            import fu
        except ImportError:
            pass
        r`   rH   s    r   Útest_importingForImportErrorz!Test.test_importingForImportError¤  ó'   € à�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         dS )z0Imports in class scope can be used through self.zf
        class c:
            import i
            def __init__(self):
                self.i
        Nr`   rH   s    r   Útest_importedInClasszTest.test_importedInClass­  r2  r   c                 ó0   — |                       d¦  «         dS )zW
        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
        Nr`   rH   s    r   Ú!test_importUsedInMethodDefinitionz&Test.test_importUsedInMethodDefinition¶  s)   € ð 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 óZ   — |                       d¦  «         |                       d¦  «         dS )z__future__ is special.zfrom __future__ import divisionze
        "docstring is allowed before future import"
        from __future__ import division
        Nr`   rH   s    r   Útest_futureImportzTest.test_futureImportÂ  s:   € à�ŠÐ5Ñ6Ô6Ð6Ø�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó†   — |                       dt          j        ¦  «         |                       dt          j        ¦  «         dS )zD
        __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)rE   rF   ÚLateFutureImportrH   s    r   Útest_futureImportFirstzTest.test_futureImportFirstÊ  sV   € ð 	�Šð õ Ôñ	!ô 	!ð 	!ð 	�Šð õ Ôñ		!ô 	!ð 	!ð 	!ð 	!r   c                 ó0   — |                       d¦  «         dS )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
        Nr`   rH   s    r   Útest_futureImportUsedzTest.test_futureImportUsedØ  r2  r   c                 óF   — |                       dt          j        ¦  «         dS )z0Importing undefined names from __future__ fails.z8
        from __future__ import print_statement
        N©rE   rF   ÚFutureFeatureNotDefinedrH   s    r   Útest_futureImportUndefinedzTest.test_futureImportUndefinedá  ó-   € à�Šð åÔ&ñ	(ô 	(ð 	(ð 	(ð 	(r   c                 óF   — |                       dt          j        ¦  «         dS )z$Importing '*' from __future__ fails.z*
        from __future__ import *
        Nr?  rH   s    r   Útest_futureImportStarzTest.test_futureImportStarç  rB  r   N)frJ   rK   rL   rQ   rZ   r^   ra   rc   re   rh   rj   rl   rn   rp   rr   rt   rv   rx   rz   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ø   rú   rü   rþ   r   r  r  r  r  r  r  r  r  r  r"  r$  r&  r(  r*  r,  r.  r
   r1  r4  r6  r8  r;  r=  rA  rD  rM   r   r   rO   rO   g   sí  € € € € € ðOð Oð Oð6ð 6ð 6ð.<ð <ð <ð/ð /ð /ð)ð )ð )ð
?ð ?ð ?ðHð Hð Hð

,ð 
,ð 
,ðð ð ð,ð ,ð ,ð
ð 
ð 
ðð ð ðð ð ð	%ð 	%ð 	%ð
ð 
ð 
ð	ð 	ð 	ðð ð ð%ð %ð %ð5ð 5ð 5ð4ð 4ð 4ð ð ð ð$%ð %ð %ð	ð 	ð 	ð
ð 
ð 
ðð ð ð ð ð ðð ð ð!ð !ð !ð?ð ?ð ?ð4ð 4ð 4ðð ð ðð ð ðð ð ðð ð ð+ð +ð +ðð ð ðð ð ðð ð ðð ð ðð ð ð(ð (ð (ð
(ð 
(ð 
(ð(ð (ð (ð&ð ð ð.ð .ð .ð"0ð 0ð 0ð,ð ,ð ,ð-ð -ð -ð
'ð 'ð 'ð(ð (ð (ðð ð ðð ð ðð ð ðð ð ðð ð ð)ð )ð )ðð ð ð-ð -ð -ð3ð 3ð 3ð-ð -ð -ð>ð >ð >ðð ð ð
ð 
ð 
ðð ð ð	ð 	ð 	ðð ð ð1ð 1ð 1ð-ð -ð -ð6ð 6ð 6ð
/ð /ð /ð.ð .ð .ðð ð ðð ð ðð ð ð0ð 0ð 0ð*<ð <ð <ð@.ð .ð .ð&ð ð ð5ð 5ð 5ð%ð %ð %ðð ð ðð ð ð ð ð ð <ð <ð <ð+ð +ð +ðð ð ðð ð ðð ð ð%ð %ð %ð$ð $ð $ð 
€Tˆ&�\„\ðð ñ „\ððð ð ð
ð 
ð 
ðð ð ð!ð !ð !ðð ð ð(ð (ð (ð(ð (ð (ð (ð (r   rO   c                   ó~   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestSpecialAllzH
    Tests for suppression of unused import warnings by C{__all__}.
    c                 ó\   — |                       dt          j        t          j        ¦  «         dS )zp
        An C{__all__} definition does not suppress unused import warnings in a
        function scope.
        zQ
        def foo():
            import bar
            __all__ = ["bar"]
        N)rE   rF   rG   rÒ   rH   s    r   Útest_ignoredInFunctionz%TestSpecialAll.test_ignoredInFunctionò  s5   € ð
 	�Šð õ Œ^�QÔ-ñ		/ô 	/ð 	/ð 	/ð 	/r   c                 óF   — |                       dt          j        ¦  «         dS )z_
        An C{__all__} definition in a class does not suppress unused import warnings.
        zM
        import bar
        class foo:
            __all__ = ["bar"]
        NrD   rH   s    r   Útest_ignoredInClassz"TestSpecialAll.test_ignoredInClassý  s0   € ð 	�Šð õ Œ^ñ		ô 	ð 	ð 	ð 	r   c                 óF   — |                       dt          j        ¦  «         d S )Nz:
        import bar
        (__all__,) = ("foo",)
        rD   rH   s    r   Ú'test_ignored_when_not_directly_assignedz6TestSpecialAll.test_ignored_when_not_directly_assigned  s.   € Ø�Šð õ Œ^ñ	ô 	ð 	ð 	ð 	r   c                 óZ   — |                       d¦  «         |                       d¦  «         dS )zn
        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",)
        Nr`   rH   s    r   Útest_warningSuppressedz%TestSpecialAll.test_warningSuppressed  sF   € ð
 	�Šð ñ 	ô 	ð 	ð 	�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó\   — |                       dt          j        t          j        ¦  «         dS )zC
        The C{__all__} variable is defined incrementally.
        z�
        import a
        import c
        __all__ = ['a']
        __all__ += ['b']
        if 1 < 3:
            __all__ += ['c', 'd']
        N©rE   rF   ÚUndefinedExportrH   s    r   Útest_augmentedAssignmentz'TestSpecialAll.test_augmentedAssignment  s6   € ð 	�Šð õ Ô¥Ô 1ñ	3ô 	3ð 	3ð 	3ð 	3r   c                 óˆ   — |                       dt          j        t          j        t          j        t          j        ¦  «         dS )zP
        The C{__all__} variable is defined through list concatenation.
        zD
        import sys
        __all__ = ['a'] + ['b'] + ['c']
        N©rE   rF   rQ  rG   rH   s    r   Ú"test_list_concatenation_assignmentz1TestSpecialAll.test_list_concatenation_assignment(  óD   € ð 	�Šð õ Ô¥Ô 1µ1Ô3DÅaÄnñ	Vô 	Vð 	Vð 	Vð 	Vr   c                 óˆ   — |                       dt          j        t          j        t          j        t          j        ¦  «         dS )zQ
        The C{__all__} variable is defined through tuple concatenation.
        zG
        import sys
        __all__ = ('a',) + ('b',) + ('c',)
        NrT  rH   s    r   Ú#test_tuple_concatenation_assignmentz2TestSpecialAll.test_tuple_concatenation_assignment1  rV  r   c                 ó0   — |                       d¦  «         d S )NzF
        from foo import bar
        __all__ = [bar.__name__]
        r`   rH   s    r   Útest_all_with_attributesz'TestSpecialAll.test_all_with_attributes:  r    r   c                 ó0   — |                       d¦  «         d S )Nz=
        from foo import bar
        __all__ = [bar]
        r`   rH   s    r   Útest_all_with_namesz"TestSpecialAll.test_all_with_names@  s'   € à�Šð ñ 	ô 	ð 	ð 	ð 	r   c                 ó0   — |                       d¦  «         d S )Nzs
        from foo import bar
        from bar import baz
        __all__ = [bar.__name__] + [baz.__name__]
        r`   rH   s    r   Útest_all_with_attributes_addedz-TestSpecialAll.test_all_with_attributes_addedG  r”   r   c                 ó0   — |                       d¦  «         d S )Nzi
        from foo import bar
        from foo import baz
        __all__ = ['bar', baz.__name__]
        r`   rH   s    r   Ú%test_all_mixed_attributes_and_stringsz4TestSpecialAll.test_all_mixed_attributes_and_stringsN  r”   r   c                 ó~   — |                       dt          j        ¦  «         dD ]}|                       d|¬¦  «         ŒdS )zY
        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"]
            )ÚfilenameNrP  )r   rb  s     r   Útest_unboundExportedz#TestSpecialAll.test_unboundExportedU  sh   € ð 	�Šð åÔñ	 ô 	 ð 	 ð ;ð 	$ð 	$ˆHØ�KŠKð à"ð ñ $ô $ð $ð $ð	$ð 	$r   c                 óˆ   — |                       dt          j        t          j        t          j        t          j        ¦  «         dS )z6
        Report undefined if import * is used
        zT
        from math import *
        __all__ = ['sin', 'cos']
        csc(1)
        N)rE   rF   r  ÚImportStarUsagerH   s    r   Útest_importStarExportedz&TestSpecialAll.test_importStarExportedd  sE   € ð 	�Šð õ Ô�qÔ0µ!Ô2CÅQÔEVñ		Xô 	Xð 	Xð 	Xð 	Xr   c                 ó\   — |                       dt          j        t          j        ¦  «         dS )z8Report unused import when not needed to satisfy __all__.zL
        from foolib import *
        a = 1
        __all__ = ['a']
        N)rE   rF   r  rG   rH   s    r   Útest_importStarNotExportedz)TestSpecialAll.test_importStarNotExportedn  s3   € à�Šð õ Ô�qœ~ñ		/ô 	/ð 	/ð 	/ð 	/r   c                 óZ   — |                       d¦  «         |                       d¦  «         dS )zR
        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)Nr`   rH   s    r   Útest_usedInGenExpz TestSpecialAll.test_usedInGenExpv  s0   € ð 	�ŠÐ7Ñ8Ô8Ð8Ø�ŠÐ<Ñ=Ô=Ð=Ð=Ð=r   c                 ó\   — |                       dt          j        t          j        ¦  «         dS )zƒ
        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))Nr\   rH   s    r   Útest_redefinedByGenExpz%TestSpecialAll.test_redefinedByGenExp}  s1   € ð
 	�ŠÐ7ÝÔ*­A¬Nñ	<ô 	<ð 	<ð 	<ð 	<r   c                 óš   — |                       d¦  «         |                       d¦  «         |                       dt          j        ¦  «         dS )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�   rH   s    r   Útest_usedAsDecoratorz#TestSpecialAll.test_usedAsDecorator…  ój   € ð 	�Šð ñ 	ô 	ð 	ð 	�Šð ñ 	ô 	ð 	ð 	�Šð õ Œ_ñ		ô 	ð 	ð 	ð 	r   c                 óš   — |                       d¦  «         |                       d¦  «         |                       dt          j        ¦  «         dS )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�   rH   s    r   Útest_usedAsClassDecoratorz(TestSpecialAll.test_usedAsClassDecoratorŸ  ro  r   N)rJ   rK   rL   Ú__doc__rH  rJ  rL  rN  rR  rU  rX  rZ  r\  r^  r`  rc  rf  rh  rj  rl  rn  rq  rM   r   r   rF  rF  î  s5  € € € € € ðð ð	/ð 	/ð 	/ðð ð ðð ð ðð ð ð3ð 3ð 3ðVð Vð VðVð Vð Vðð ð ðð ð ðð ð ðð ð ð$ð $ð $ðXð Xð Xð/ð /ð /ð>ð >ð >ð<ð <ð <ðð ð ð4ð ð ð ð r   rF  N)Úpyflakesr   rF   Úpyflakes.checkerr   r   r   r   r   Úpyflakes.test.harnessr	   r
   r   rO   rF  rM   r   r   ú<module>rv     s  ðØ "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð ð ð ð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0ðX6ð X6ð X6ð X6ð X6˜Hñ X6ô X6ð X6ðvD(ð D(ð D(ð D(ð D(ˆ8ñ D(ô D(ð D(ðNIð Ið Ið Ið I�Xñ Iô Ið Ið Ið Ir   