
    wie                     t    d dl Z d dlmZmZ d dlmZ  G d de          Zedk    r e j                     dS dS )    N)TestCaserun_in_subprocess)utilsc                   *    e Zd ZdZd Zd Zd Zd ZdS )TestNumbaImportz,
    Test behaviour of importing Numba.
    c                 \   g d}|D ]-}|dk    pt           j        dk     }|dvr|rt          |           .d}t          |          \  }}t	          t          |                                                    }t	          |          t	          |          z  }|                     |d           dS )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	   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	            g/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/numba/tests/test_import.pytest_lazinesszTestNumbaImport.test_laziness   s    
	 	 	  	  	 C"k1  9$8 )###3 #4((Qd399;;''((\\CLL0
%IJJJJJ    c                    g d}d}d}||fD ]w}t          |          \  }}t          t          |                                                    }t          |          t          |          z  }|                     |d           xdS )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.   s    8 8 82 EN 	O 	OD&t,,FC$syy{{++,,GWG4JZ)MNNNN		O 	Or!   c                 2    d}ddg}t          ||           d S )Nzimport numbaz-Werrorz/-Wignore::DeprecationWarning:packaging.version:r   )r   r   flagss      r   test_no_accidental_warningsz+TestNumbaImport.test_no_accidental_warningsd   s,      MN$&&&&&r!   c                 (    d}t          |           d S )Nzfrom numba import *r'   )r   r   s     r   test_import_starz TestNumbaImport.test_import_starm   s    $$r!   N)__name__
__module____qualname____doc__r    r%   r)   r+    r!   r   r   r      sb         !K !K !KF4O 4O 4Ol' ' '         r!   r   __main__)	unittestnumba.tests.supportr   r   
numba.corer   r   r,   mainr0   r!   r   <module>r6      s     ; ; ; ; ; ; ; ;      j  j  j  j  j h j  j  j Z zHMOOOOO r!   