+
    ;i.:              	       l   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	5 ^ RI
t^ RIHt ^ RIHt ^ RIHtHtHtHtHtHtHtHtHt ^ RItRt]P8                  ! ]P:                  P=                  R4      '       * ]4      t]P@                  PC                  ]P@                  PE                  ]#4      4      t$R t%]] ! R	 R
]4      4       4       t&] ! R R]4      4       t']]] ! R R]'4      4       4       4       t(]]]] ! R R]4      4       4       4       4       t)]*R8X  d   ]PV                  ! 4        R# R# )    N)skip)*)utils)	TestCasetagimport_dynamictemp_directoryhas_blasneeds_setuptoolsskip_if_py313plus_on_windowsskip_if_linux_aarch64skip_if_freethreadingzwindows onlywinc                 V    R\         P                  9   d   \         P                  R R# R# )zNUnset MACOSX_DEPLOYMENT_TARGET because we are not building portable
libraries
MACOSX_DEPLOYMENT_TARGETN)osenviron     S/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_pycc.pyunset_macosx_deployment_targetr      s"     "RZZ/JJ12 0r   c                   0   a  ] tR t^'t o ]R 4       tRtV tR# )TestCompilerChecksc                    ^ RI Hp \        P                  P	                  RR4      RJpV'       d=   \        P                  P	                  RR4      e   V P                  V! 4       4       R# R# R# )r   )external_compiler_worksCONDA_BUILDNVSINSTALLDIR)numba.pycc.platformr   r   r   get
assertTrue)selfr   is_running_conda_builds   &  r   test_windows_compiler_validity1TestCompilerChecks.test_windows_compiler_validity,   sU     	@!#t!DD!P!zz~~nd3? 7 9: @ "r   r   N)__name__
__module____qualname____firstlineno___windows_onlyr#   __static_attributes____classdictcell____classdict__s   @r   r   r   '   s     
 ; ;r   r   c                   P   a  ] tR t^;t o R tR t]P                  R 4       tRt	V t
R# )BasePYCCTestc                d    \        4        \        R 4      V n        V P                  \        n        R# )	test_pyccN)r   r	   tmpdirtempfiletempdirr!   s   &r   setUpBasePYCCTest.setUp>   s"    &($[1  ;;r   c                6    R \         n        ^ RIHp V! 4        R # )N)clear_export_registry)r3   r4   numba.pycc.decoratorsr9   )r!   r9   s   & r   tearDownBasePYCCTest.tearDownF   s     	@r   c              #  r  "   \         P                  P                  V4        \        V4      pVx  \         P                  P	                  V4       \         P
                  P                  VR 4       R #   \         P                  P	                  T4       \         P
                  P                  TR 4       i ; i5iN)syspathappendr   removemodulespop)r!   extdirnamelibs   &&& r   check_c_extBasePYCCTest.check_c_extQ   sp     	( &CIHHOOF#KKOOD$' HHOOF#KKOOD$'s    B7A3 AB73AB44B7)r2   N)r%   r&   r'   r(   r6   r;   
contextlibcontextmanagerrH   r*   r+   r,   s   @r   r/   r/   ;   s)     '	  ( (r   r/   c                      a a ] tR t^\t oV 3R lt]P                  R 4       tR tR t	R t
R tR tR tR	 tR
 tR tR tR tRtVtV ;t# )TestCCc                   < \         \        V `  4        V P                  4        ^ RIHp Wn        \        P                  ! V P                  4       R# )r   )compile_with_pyccN)	superrM   r6   skip_if_no_external_compilernumba.testsrO   _test_module	importlibreload)r!   rO   	__class__s   & r   r6   TestCC.setUpa   s9    fd!#))+1-**+r   c              #     "   V P                   Vn        VP                  4        V P                  V P                   VP                  4      ;_uu_ 4       pVx  R R R 4       R #   + '       g   i     R # ; i5ir>   )r2   
output_dircompilerH   rF   )r!   ccrG   s   && r   check_cc_compiledTestCC.check_cc_compiledh   sK      


dkk27733sI 4333s   AA5A!
A5!A2	,	A5c                    R RVP                   R\        P                  P                  VP                  4      /,          pVP                  R4      V,           p\        P                  ! \        P                  RV.4       R# )a  if 1:
            import sys
            import types
            # to disable numba package
            sys.modules['numba'] = types.ModuleType('numba')
            try:
                from numba import njit
            except ImportError:
                pass
            else:
                raise RuntimeError('cannot disable numba package')

            sys.path.insert(0, %(path)r)
            import %(name)s as lib
            rF   r@    -cN)
r%   r   r@   dirname__file__strip
subprocess
check_callr?   
executable)r!   rG   codeprologs   &&& r   check_cc_compiled_in_subprocess&TestCC.check_cc_compiled_in_subprocessq   sb     3<<277??3<<8::  ||C 4's~~tT:;r   c                   V P                   P                  pV P                  VP                  R 4       V P                   P                  P                  pV P                  \        P                  P                  V4      V4       V P                   P                  P                  pV P                  \        P                  P                  V4      V4       V P                  \        P                  P                  V4      P                  R4      V4       \        P                  P                  R4      '       dA   T P                  VP!                  R4      V4       ^ RIHp V P'                  V! 4       V4       R# R# )pycc_test_simplezpycc_test_simple.linuxz.so)find_pyext_endingN)rS   r[   assertEqualrF   rY   r    r   r@   isdiroutput_fileassertFalseexistsbasename
startswithr?   platformendswithr   rn   assertIn)r!   r[   dfrn   s   &    r   test_cc_propertiesTestCC.test_cc_properties   s   !!"45   ++a(!,   ,,*A.((+667JKQO<<""7++OOAJJu-q1 >MM+-q1 ,r   c           	     F   V P                  V P                  P                  4      ;_uu_ 4       pVP                  ^{R4      pV P	                  VR4       VP                  RR4      pV P	                  VR4       VP                  ^4      pV P	                  V^4       V P                  VP                  4       R4       V P                  \        4      ;_uu_ 4        VP                  ^^ 4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i){   A  i  N;  g    lVA)r\   rS   r[   multiassertPreciseEqualmultfsquareassertIsget_noneassertRaisesZeroDivisionErrordiv)r!   rG   ress   &  r   test_compileTestCC.test_compile   s    ##D$5$5$8$899S))C%C##C3))C%C##C7**Q-C##C,MM#,,.$/""#4551 6 :9 65 :99s$   B)DC<	*D<DDD 	c                >   V P                   P                  pWn        V P                  V4      ;_uu_ 4       pVP	                  ^{R4      pV P                  VR4       V P                  VP                  P                  R4       RRR4       R#   + '       g   i     R# ; i)r~   r   rl   Nr   )rS   r[   
target_cpur\   r   r   ro   r&   )r!   cpu_namer[   rG   r   s   &&   r   check_compile_for_cpuTestCC.check_compile_for_cpu   su    !! ##B''3))C%C##C3SYY113EF ('''s   ABB	c                N    V P                  \        P                  ! 4       4       R # r>   )r   llget_host_cpu_namer5   s   &r   test_compile_for_cpuTestCC.test_compile_for_cpu   s    ""2#7#7#9:r   c                (    V P                  R 4       R# )hostN)r   r5   s   &r   test_compile_for_cpu_host TestCC.test_compile_for_cpu_host   s    ""6*r   c                   V P                  V P                  P                  4      ;_uu_ 4       pVP                  ^^4      pV P	                  V^4       RR	\
        P                  ! R4      3 F&  pVP                  V4      pV P	                  VR4       K(  	  ^R\
        P                  ! ^4      3 F&  pVP                  V4      pV P	                  VR4       K(  	  VP                  R4      pV P	                  VR
4       V P                  VP                  R4      VP                  R4      4       VP                  ^*4      p\
        P                  P                  ^*4      P                  4       pV P	                  W$4       VP                  \
        P                  ! ^ .^,          4      4      pV P	                  V^4       RRV/,          pV P!                  W4       RRR4       R#   + '       g   i     R# ; i)   y              ?      @       @      ?aR  if 1:
                from numpy.testing import assert_equal, assert_allclose
                res = lib.power(2, 7)
                assert res == 128
                res = lib.random(42)
                assert_allclose(res, %(expected)s)
                res = lib.spacing(1.0)
                assert_allclose(res, 2**-52)
                expectedNy              g      <)r\   rS   cc_helperlibpowerr   np
complex128sqrtfloat64np_sqrtspacingassertNotEqualrandomRandomStaterandom_samplesizeri   r!   rG   r   valr   rg   s   &     r   test_compile_helperlibTestCC.test_compile_helperlib   s   ##D$5$5$B$BCCs))Aq/C##C-GR]]2%67hhsm''R0 8 3

1.kk#&''S1 / ++c"C##C0 

2

2?**R.Cyy,,R0>>@H##C2((2::qcAg./C##C+ "8,-D 00;; DCCCs   F(G  G1	c                   V P                  V P                  P                  4      ;_uu_ 4       pV P                  VP	                  ^4      R4       VP                  ^4      pV P                  \        V4      . RO4       \        '       d$   VP                  ^4      pV P                  VR4       \        P                  ! . RO4      pVP                  V4      p\        P                  ! V4      pV P                  W$4       R\        \        R7      ,          pV P                  W4       RRR4       R#   + '       g   i     R# ; i)   g        g      >@aB  if 1:
                from numpy.testing import assert_equal
                from numpy import float64, argsort
                res = lib.zero_scalar(1)
                assert res == 0.0
                res = lib.zeros(3)
                assert list(res) == [0, 0, 0]
                if %(has_blas)s:
                    res = lib.vector_dot(4)
                    assert res == 30.0
                val = float64([2., 5., 1., 3., 4.])
                res = lib.np_argsort(val)
                expected = argsort(val)
                assert_equal(res, expected)
                )r
   N)r   r   r   )r   g      @r   g      @r   )r\   rS   cc_nrtr   zero_scalarzerosro   listr
   
vector_dotr   r   
np_argsortargsortdictri   r   s   &     r   test_compile_nrtTestCC.test_compile_nrt   s    ##D$5$5$<$<==##COOA$6<))A,CT#Y	2xnnQ'''T2**12C..%Czz#H##C2 H-.D 00;; >===s   C7D//E 	c                n   V P                  V P                  P                  4      ;_uu_ 4       pVP                  4       pV P	                  V\        R 4      4       VP                  R 4      pV P	                  V\        R 4      4       RpV P                  W4       RRR4       R#   + '       g   i     R# ; i)Azif 1:
                from numpy.testing import assert_equal
                res = lib.hash_literal_str_A()
                assert_equal(res, hash("A"))
                res = lib.hash_str("A")
                assert_equal(res, hash("A"))
                N)r\   rS   r   hash_literal_str_Ar   hashhash_strri   )r!   rG   r   rg   s   &   r   test_hashingTestCC.test_hashing   s    ##D$5$5$<$<==((*C##Cc3,,s#C##Cc3D 00; >===s   A+B##B4	c                :   V P                  V P                  P                  4      ;_uu_ 4       p\        P                  ! ^\        P
                  R7      pVP                  V4      pW",          pV P                  W44       RRR4       R#   + '       g   i     R# ; i)   dtypeN)r\   rS   r   r   arangeintpdict_usecaser   )r!   rG   arrgotexpects   &    r   test_c_extension_usecaseTestCC.test_c_extension_usecase  si    ##D$5$5$<$<==))Crww/C""3'CYF##C0	 >===s   AB		B	c           	     \   V P                  V P                  P                  4      ;_uu_ 4       p\        P                  ! R\        P
                  R7      p\        P                  ! R\        P
                  R7      pVP                  W#4       V P                  W#4       \        P                  ! R\        P
                  R7      pVP                  W#4       V P                  W#4       \        P                  ! R\        P
                  R7      p\        P                  ! R\        P
                  R7      pV P                  \        4      ;_uu_ 4       pVP                  W#4       RRR4       V P                  RVP                   RVP                   2\        XP                  4      4       \        P                  ! R\        P
                  R7      p\        P                  ! R\        P
                  R7      pV P                  \        4      ;_uu_ 4       pVP                  W#4       RRR4       V P                  RVP                   RVP                   2\        VP                  4      4       RRR4       R#   + '       g   i     EL; i  + '       g   i     Lm; i  + '       g   i     R# ; i)	zSee https://github.com/numba/numba/issues/9948

Dynamic exception uses a symbol that in PYCC compilation must become
linkonce_odr linkage to prevent symbol collision.
r   Nzcannot assign slice of shape z from input of shape )r   r   )r      )      )r      )r\   rS   	cc_dynexcr   r   r   onesdo_setitem1r   do_setitem2r   
ValueErrorrx   shapestr	exception)r!   rG   abraisess   &    r   test_dynamic_excTestCC.test_dynamic_exc  s    ##D$5$5$?$?@@Crzz2Abjj1AOOA!##A)rzz2AOOA!##A) rzz2Abjj1A"":..&% / MM/y 9""#'',F$$%'
 rzz2Abjj1A"":..&% / MM/y 9""#'',F$$%'7 A@ /.. /.1 A@@s>   D JI3	 B0JJ	"AJ3J>	JJJJ+	)rS   )r%   r&   r'   r(   r6   rJ   rK   r\   ri   r{   r   r   r   r   r   r   r   r   r   r*   r+   __classcell__rV   r-   s   @@r   rM   rM   \   sc     
,  <(2&
G;+<@<@< 1$' $'r   rM   c                   V   a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	tVtV ;t# )
TestDistutilsSupporti4  c                ^  < \         SV `  4        V P                  4        \        4        \	        R 4      V n        \        P                  P                  \        R4      p\        P                  P                  V P
                  R4      V n
        \        P                  ! WP                  4       R# )test_pycc_distutilspycc_distutils_usecaseworkN)rP   r6   rQ   r   r	   r2   r   r@   join	base_pathusecase_dirshutilcopytree)r!   
source_dirrV   s   & r   r6   TestDistutilsSupport.setUp:  so    ))+&( %%:;WW\\)-EF
77<<V<
$4$45r   c                  a a ^ RI p\        P                  P                  \        P                  P	                  \        P                  P	                  VP
                  4      4      4      p\        \        P                  4      oSP                  RR4      '       d*   V\        P                  ,           SR,          ,           SR&   MVSR&   VV 3R lpV! VRR.4       RpV! RV.4       R# )	r   N
PYTHONPATH c                 \  < \         P                  ! \        P                  .V ,           SP                  \         P
                  \         P                  SR 7      pVP                  4       w  r#VP                  4       pV^ 8w  d+   SP                  RVP                  RR4      ,          4       R# R# )cwdstdoutstderrenvz+python failed with the following output:
%szutf-8ignoreNrd   Popenr?   rf   r   PIPESTDOUTcommunicatewaitfaildecodeargspout_rcr   r!   s   &    r   
run_python7TestDistutilsSupport.check_setup_py.<locals>.run_pythonR        #..!1D!8%)%5%5(2(2(9(9%(	*A
 ]]_FCBQw		HJJw9: ; r   	build_ext	--inplacezif 1:
            import pycc_compiled_module as lib
            assert lib.get_const() == 42
            res = lib.ones(3)
            assert list(res) == [1.0, 1.0, 1.0]
            r`   
numbar   r@   abspathra   rb   r   r   r   pathsepr!   setup_py_filer  
numba_pathr  rg   r   s   f&    @r   check_setup_py#TestDistutilsSupport.check_setup_pyG      WW__RWW__%'WW__U^^%D&F G
2::77<$$ *RZZ 7#l:K KC *C
	; 	M;<= 	D$< r   c                  a a ^ RI p\        P                  P                  \        P                  P	                  \        P                  P	                  VP
                  4      4      4      p\        \        P                  4      oSP                  RR4      '       d*   V\        P                  ,           SR,          ,           SR&   MVSR&   VV 3R lpV! VRR.4       RpV! RV.4       R# )	r   Nr   r   c                 \  < \         P                  ! \        P                  .V ,           SP                  \         P
                  \         P                  SR 7      pVP                  4       w  r#VP                  4       pV^ 8w  d+   SP                  RVP                  RR4      ,          4       R# R# r   r   r  s   &    r   r  >TestDistutilsSupport.check_setup_nested_py.<locals>.run_pythonr  r  r   r  r  zif 1:
            import nested.pycc_compiled_module as lib
            assert lib.get_const() == 42
            res = lib.ones(3)
            assert list(res) == [1.0, 1.0, 1.0]
            r`   r  r  s   f&    @r   check_setup_nested_py*TestDistutilsSupport.check_setup_nested_pyg  r  r   c                (    V P                  R 4       R# )zsetup_distutils.pyNr  r5   s   &r   test_setup_py_distutils,TestDistutilsSupport.test_setup_py_distutils  s    01r   c                (    V P                  R 4       R# )zsetup_distutils_nested.pyNr  r5   s   &r   test_setup_py_distutils_nested3TestDistutilsSupport.test_setup_py_distutils_nested  s    ""#>?r   c                (    V P                  R 4       R# )zsetup_setuptools.pyNr   r5   s   &r   test_setup_py_setuptools-TestDistutilsSupport.test_setup_py_setuptools  s    12r   c                (    V P                  R 4       R# )zsetup_setuptools_nested.pyNr$  r5   s   &r   test_setup_py_setuptools_nested4TestDistutilsSupport.test_setup_py_setuptools_nested  s    ""#?@r   )r2   r   )r%   r&   r'   r(   r6   r  r  r!  r%  r(  r+  r*   r+   r   r   s   @@r   r   r   4  s2     6!@!@2@3A Ar   r   __main__),rJ   rT   r   r   rd   r?   r3   unittestr   ctypesnumpyr   llvmlite.bindingbindingr   
numba.corer   numba.tests.supportr   r   r   r	   r
   r   r   r   r   _skip_reasonskipIfrv   ru   r)   r@   ra   r  rb   r   r   r   r/   rM   r   r%   mainr   r   r   <module>r8     sR     	   
      O O O  CLL$;$;E$B B ,. GGOOBGGOOH56	3 ; ;  ;$ (8 ( (@ R'\ R'   R'j YA8 YA    YAx zMMO r   