Ë
    èÿæi†  ã                   ót   — d dl Z d dlmZmZ d dlmZ d dlZ G d„ de«      Zedk(  r e j                  «        yy)é    N)ÚTestCaseÚrun_in_subprocess)Úutilsc                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚTestNumbaImportz,
    Test behaviour of importing Numba.
    c                 ó*  — g d¢}|D ]/  }|dk7  xs t         j                  dk  }|dvsŒ"|sŒ%t        |«       Œ1 d}t        |«      \  }}t	        t        |j                  «       «      «      }t	        |«      t	        |«      z  }| j                  |d«       y)zX
        Importing top-level numba features should not import too many modules.
        )	ÚcffiÚ	distutilsz
numba.cudaúnumba.cpython.mathimplúnumba.cpython.randomimplznumba.testsznumba.core.typing.collectionsznumba.core.typing.listdeclznumba.core.typing.npdatetimer
   )é   é   )r	   z¤if 1:
            from numba import jit, vectorize
            from numba.core import types
            import sys
            print(list(sys.modules))
            ú"some modules unexpectedly importedN)r   Ú	PYVERSIONÚ
__import__r   ÚsetÚevalÚstripÚassertFalse)	ÚselfÚbanlistÚmodÚdistutils_checkÚcodeÚoutÚ_ÚmodlistÚ
unexpecteds	            úl/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_import.pyÚtest_lazinesszTestNumbaImport.test_laziness   s“   € ò
	ˆó ˆCØ" kÑ1ò  9Ü$Ÿ™°Ñ8ð à˜)Ò#ªÜ˜3•ð	 ðˆô # 4Ó(‰ˆˆQÜ”d˜3Ÿ9™9›;Ó'Ó(ˆÜ˜“\¤C¨£LÑ0ˆ
Ø×Ñ˜Ð%IÕJó    c                 óØ   — g d¢}d}d}||fD ][  }t        |«      \  }}t        t        |j                  «       «      «      }t        |«      t        |«      z  }| j	                  |d«       Œ] y)zé
        Tests that importing jit does not trigger import of modules containing
        lowering implementations that would likely install things in the
        builtins registry and have side effects impacting other targets
        )znumba.cpython.slicingznumba.cpython.tupleobjznumba.cpython.enumimplznumba.cpython.hashingznumba.cpython.heapqznumba.cpython.iteratorsznumba.cpython.numbersznumba.cpython.rangeobjznumba.cpython.cmathimplr   znumba.cpython.printimplr   znumba.core.optionalznumba.misc.gdb_hookznumba.misc.literalznumba.misc.cffiimplznumba.np.linalgznumba.np.polynomialznumba.np.arraymathznumba.np.npdatetimeznumba.np.npyimplznumba.typed.typeddictznumba.typed.typedlistz numba.experimental.jitclass.basezgif 1:
            import sys
            import numba
            print(list(sys.modules))
            z¯if 1:
            import sys
            from numba import njit
            @njit
            def foo():
                pass
            print(list(sys.modules))
            r   N)r   r   r   r   r   )	r   r   Úcode1Úcode2r   r   r   r   r   s	            r   Útest_no_impl_importz#TestNumbaImport.test_no_impl_import/   sm   € ò8ˆð2ˆðˆð ˜E“NˆDÜ& tÓ,‰FˆC�Üœ$˜sŸy™y›{Ó+Ó,ˆGÜ˜W›¬¨G«Ñ4ˆJØ×Ñ˜ZÐ)MÕNñ	 #r!   c                 ód   — d}ddg}t        ||t        j                  j                  «       ¬«       y )Nzimport numbaz-Werrorz/-Wignore::DeprecationWarning:packaging.version:)Úenv)r   ÚosÚenvironÚcopy)r   r   Úflagss      r   Útest_no_accidental_warningsz+TestNumbaImport.test_no_accidental_warningse   s-   € ð ˆð ÐMÐNˆÜ˜$ ¬2¯:©:¯?©?Ó+<Ö=r!   c                 ó   — d}t        |«       y )Nzfrom numba import *)r   )r   r   s     r   Útest_import_starz TestNumbaImport.test_import_starn   s   € à$ˆÜ˜$Õr!   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r    r%   r,   r.   © r!   r   r   r      s   „ ñò!KòF4Oòl>ó r!   r   Ú__main__)
ÚunittestÚnumba.tests.supportr   r   Ú
numba.corer   r(   r   r/   Úmainr3   r!   r   Ú<module>r9      s:   ðÛ ß ;Ý Û 	ôj �hô j ðZ ˆzÒØ€H‡M�M…Oð r!   