
    xKg                     `    d dl Z d dlmZmZ  G d de      Zedk(  r e j                          yy)    N)TestCaserun_in_subprocessc                   (    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vst        |        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.npdatetime)r   zif 1:
            from numba import jit, vectorize
            from numba.core import types
            import sys
            print(list(sys.modules))
            "some modules unexpectedly importedN)
__import__r   setevalstripassertFalse)selfbanlistmodcodeout_modlist
unexpecteds           [/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_import.pytest_lazinesszTestNumbaImport.test_laziness
   ss    
	 C)#3  #4(Qd399;'(\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))
            zif 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 END&t,FC$syy{+,GWG4JZ)MN	 #r   c                 (    d}ddg}t        ||       y )Nzimport numbaz-Werrorz/-Wignore::DeprecationWarning:packaging.version:r   )r   r   flagss      r   test_no_accidental_warningsz+TestNumbaImport.test_no_accidental_warnings`   s       MN$&r   c                     d}t        |       y )Nzfrom numba import *r"   )r   r   s     r   test_import_starz TestNumbaImport.test_import_stari   s    $$r   N)__name__
__module____qualname____doc__r   r    r$   r&    r   r   r   r      s    K@4Ol' r   r   __main__)unittestnumba.tests.supportr   r   r   r'   mainr+   r   r   <module>r0      s4     ;g h g T zHMMO r   