
    sh                        S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJs  Jr   " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r\S:X  a  \R.                  " 5         gg)    N)
skipUnless)NonCallableMock)chain)datetime)redirect_stdout)StringIO)TestCasec                   L   ^  \ rS rSrU 4S jrU 4S jrS rS rS rS r	Sr
U =r$ )	TestSysInfo   c                   > [         [        U ]  5         [        R                  " 5       U l        [        [        R                  4[        [        R                  4[        [        R                  [        R                  [        R                  [        R                  [        R                  [        R                   [        R"                  [        R$                  [        R&                  [        R(                  4
[*        [        R,                  [        R.                  [        R0                  [        R2                  [        R4                  [        R6                  [        R8                  [        R:                  [        R<                  4	[>        [        R@                  [        RB                  4[D        [        RF                  4[H        [        RJ                  [        RL                  40U l'        [Q        U RN                  RS                  5       6 U l*        g N)+superr   setUpnsiget_sysinfoinfoint
_cpu_countfloat_runtimestr_machine	_cpu_name_platform_name_os_name_os_version_python_comp_python_impl_python_version_llvm_version_numpy_versionbool_cu_dev_init_svml_state_svml_loaded_svml_operational_llvm_svml_patched_tbb_thread_openmp_thread_wkq_thread_numpy_AVX512_SKX_detectedlist_errors	_warningsdict_numba_env_varsr   _start
_start_utcsafe_contentsr   values	safe_keysself	__class__s    l/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_sysinfo.pyr   TestSysInfo.setUp   s[   k4&(OO%	  ""    ##!!""     %%&&""..
  ## 

K)
T  2 2 9 9 ;<    c                 .   > [         [        U ]  5         U ?g r   )r   r   tearDownr   r7   s    r:   r>   TestSysInfo.tearDown?   s    k4)+Ir<   c                     U R                    H6  nU R                  US9   U R                  XR                  5        S S S 5        M8     g ! , (       d  f       MJ  = fN)k)r6   subTestassertInr   )r8   rB   s     r:   test_has_safe_keysTestSysInfo.test_has_safe_keysD   s=    A"a+ #"  ""s   A
A	c                     U R                   R                  5        HE  u  pU H:  nU R                  US9   U R                  U R                  U   U5        S S S 5        M<     MG     g ! , (       d  f       MR  = frA   )r4   itemsrC   assertIsInstancer   r8   tkeysrB   s       r:   test_safe_content_type"TestSysInfo.test_safe_content_typeI   s\    ))//1GA\\A\&))$))A,: '&  2&&    A%%
A4c                 \    U R                  U R                  [        R                     5        g r   )assertFalser   r   r.   r8   s    r:   test_has_no_errorTestSysInfo.test_has_no_errorO   s    3;;/0r<   c                     [        5       n[        U5         [        R                  " 0 5      nS S S 5        U R	                  W5        UR                  5         g ! , (       d  f       N0= fr   )r   r   r   display_sysinfoassertIsNoneclose)r8   outputress      r:   test_display_empty_info#TestSysInfo.test_display_empty_infoR   sF    V$%%b)C %# %$s   A
A%)r   r4   r6   )__name__
__module____qualname____firstlineno__r   r>   rE   rM   rS   r[   __static_attributes____classcell__r9   s   @r:   r   r      s'    -=^
,
;1 r<   r   c                      ^  \ rS rSrSrSrSS/rU 4S jrU 4S jrS r	S	 r
\" \R                  " 5       S
;   S5      S 5       rSrU =r$ )TestSysInfoWithPsutilZ   i    i         c                 h  > [         [        U ]  5         [        R                  U l        S[        l        [        5       [        l        [        R                  R                  R                  nU R                  Ul        U R                  Ul        [        R                  " 5       S;   a@  [        R                  R                   R                  nU R"                  UR$                  l	        OS [        R                  R                   l	        [        R&                  " [        R                  " 5       5      U l        g )NTLinuxWindows)r   re   r   r   _psutil_importpsutil_orig_stater   psutilvirtual_memoryreturn_value	mem_totaltotalmem_available	availableplatformsystemProcess	cpus_listcpu_affinityget_os_spec_infor   )r8   vmprocr9   s      r:   r   TestSysInfoWithPsutil.setUp`   s    #T02!$!3!3!$&
ZZ&&33>>))?? 55::%%22D-1^^D*.2CJJ+(():;	r<   c                 T   > [         [        U ]  5         U R                  [        l        g r   )r   re   r>   rn   r   rm   r7   s    r:   r>   TestSysInfoWithPsutil.tearDownr   s    #T35!33r<   c                 B   [         R                  [         R                  4nU Hg  nU R                  US9   U R	                  X R
                  R                  5       5        U R                  U R
                  U   [        5        S S S 5        Mi     g ! , (       d  f       M{  = frA   	r   
_mem_total_mem_availablerC   rD   r   rL   rI   r   r8   rL   rB   s      r:   test_has_all_data'TestSysInfoWithPsutil.test_has_all_datav   l     2 23A"a!12%%diilC8 #" ""   AB
B	c                     U R                  U R                  [        R                     U R                  5        U R                  U R                  [        R
                     U R                  5        g r   )assertEqualr   r   r   rr   r   rt   rR   s    r:   test_has_correct_values-TestSysInfoWithPsutil.test_has_correct_values}   sH    3>>2DNNC3#5#568J8JKr<   rj   z5CPUs allowed info only available on Linux and Windowsc                    U R                  U R                  [        R                     [	        U R
                  5      5        U R                  U R                  [        R                     SR                  S U R
                   5       5      5        g )N c              3   8   #    U  H  n[        U5      v   M     g 7fr   )r   ).0ns     r:   	<genexpr>7TestSysInfoWithPsutil.test_cpus_list.<locals>.<genexpr>   s     !A.Q#a&&.s   )r   r   r   _cpus_allowedlenry   
_cpus_listjoinrR   s    r:   test_cpus_list$TestSysInfoWithPsutil.test_cpus_list   s`     	3#4#45s4>>7JK3>>2!A$..!AA	Cr<   r   rn   )r]   r^   r_   r`   rr   rt   ry   r   r>   r   r   r   rv   rw   r   ra   rb   rc   s   @r:   re   re   Z   sZ    IMAI<$49L !%99GICICr<   re   c                   :   ^  \ rS rSrU 4S jrU 4S jrS rSrU =r$ )TestSysInfoWithoutPsutil   c                    > [         [        U ]  5         [        R                  U l        S[        l        [        R                  " [        R                  " 5       5      U l	        g )NF)
r   r   r   r   rm   rn   r{   rv   rw   r   r7   s    r:   r   TestSysInfoWithoutPsutil.setUp   s@    &35!$!3!3"(():;	r<   c                 T   > [         [        U ]  5         U R                  [        l        g r   )r   r   r>   rn   r   rm   r7   s    r:   r>   !TestSysInfoWithoutPsutil.tearDown   s    &68!33r<   c                 B   [         R                  [         R                  4nU Hg  nU R                  US9   U R	                  X R
                  R                  5       5        U R                  U R
                  U   [        5        S S S 5        Mi     g ! , (       d  f       M{  = frA   r   r   s      r:   r   *TestSysInfoWithoutPsutil.test_has_all_data   r   r   r   )	r]   r^   r_   r`   r   r>   r   ra   rb   rc   s   @r:   r   r      s    <49 9r<   r   c                   &    \ rS rSrS rS rS rSrg)TestPlatformSpecificInfo   c                 l   [         [        R                  40[         [        R                  40[         [        R                  40S.U l        [
        R                  " 5       U l        U R                  R                  U R                  0 5      U l	        [        R                  " U R                  5      U l        g )N)rk   rl   Darwin)r   r   _libc_version_os_spec_versionplat_spec_inforv   rw   os_namegetcontentsr{   r   rR   s    r:   r   TestPlatformSpecificInfo.setUp   s     c'') c**, c**,

  (++//bA((6	r<   c                     [        U R                  R                  5       6 nU HD  nU R                  US9   U R	                  X R
                  R                  5       5        S S S 5        MF     g ! , (       d  f       MX  = frA   )r   r   r5   rC   rD   r   rL   r   s      r:   r   *TestPlatformSpecificInfo.test_has_all_data   sW    dmm**,-A"a!12 #" ""s   *A,,
A;	c                     U R                   R                  5        HE  u  pU H:  nU R                  US9   U R                  U R                  U   U5        S S S 5        M<     MG     g ! , (       d  f       MR  = frA   )r   rH   rC   rI   r   rJ   s       r:   test_content_type*TestPlatformSpecificInfo.test_content_type   sZ    }}**,GA\\A\&))$))A,: '&  -&&rO   )r   r   r   r   N)r]   r^   r_   r`   r   r   r   ra    r<   r:   r   r      s    7 3;r<   r   __main__)rv   unittestr   unittest.mockr   	itertoolsr   r   
contextlibr   ior   numba.tests.supportr	   numba.misc.numba_sysinfomiscnumba_sysinfor   r   re   r   r   r]   mainr   r<   r:   <module>r      st       )   &  ( & &I( IX,CH ,C^9x 9(;x ;> zMMO r<   