
    |he                     n    S SK r S SKJrJr  S SKJr   " S S\5      r\S:X  a  \ R                  " 5         gg)    N)TestCaserun_in_subprocess)utilsc                   0    \ rS rSrSrS rS rS rS rSr	g)	TestNumbaImport   z$
Test behaviour of importing Numba.
c                 H   / SQnU H>  nUS:g  =(       d    [         R                  S:  nUS;  d  M*  U(       d  M3  [        U5        M@     Sn[        U5      u  pV[	        [        UR                  5       5      5      n[	        U5      [	        U5      -  nU R                  US5        g)zH
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
   zif 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	            Q/home/james-whalen/.local/lib/python3.13/site-packages/numba/tests/test_import.pytest_lazinessTestNumbaImport.test_laziness   s    
	 C"k1  9$8 )#3	  #4(d399;'(\CL0
%IJ    c                     / SQnSnSnX#4 H[  n[        U5      u  pV[        [        UR                  5       5      5      n[        U5      [        U5      -  nU R	                  US5        M]     g)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_import#TestNumbaImport.test_no_impl_import.   si    82 ND&t,FC$syy{+,GWG4JZ)MN	 #r#   c                 &    SnSS/n[        X5        g )Nzimport numbaz-Werrorz/-Wignore::DeprecationWarning:packaging.version:r   )r   r   flagss      r    test_no_accidental_warnings+TestNumbaImport.test_no_accidental_warningsd   s      MN$&r#   c                     Sn[        U5        g )Nzfrom numba import *r*   )r   r   s     r    test_import_star TestNumbaImport.test_import_starm   s    $$r#    N)
__name__
__module____qualname____firstlineno____doc__r!   r'   r,   r/   __static_attributes__r1   r#   r    r   r      s    !KF4Ol' r#   r   __main__)	unittestnumba.tests.supportr   r   
numba.corer   r   r2   mainr1   r#   r    <module>r=      s5     ; j h j Z zMMO r#   