+
    Bi6?                         ^ RI t^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
Ht ]	P                  ! R4      t]	P                  ! R4      tRt ! R R]P                   4      t]R	8X  d   ]P&                  ! 4        R# R# )
    N)	os_helper)import_helper)check_warnings	_testcapi_testlimitedcapic                      a  ] tR t^t o R tR tR tR tR tR t	R!R l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R tR tR tR tR tR!R ltR tR tR tR t R t!Rt"V t#R # )"ImportTestsc                    \         P                  4       pV P                  V\        P	                  \
        P                  P                  R 4      4       R# )littleN)r   PyImport_GetMagicNumberassertEqualint
from_bytes	importlibutilMAGIC_NUMBER)selfmagics   & 1/usr/lib/python3.14/test/test_capi/test_import.pytest_getmagicnumberImportTests.test_getmagicnumber   s9     88:	(C(CXN	P    c                    \         P                  4       pV P                  V\        P                  P
                  4       R # N)r   PyImport_GetMagicTagr   sysimplementation	cache_tag)r   tags   & r   test_getmagictagImportTests.test_getmagictag   s,    335c00::;r   c                n    \         P                  4       pV P                  V\        P                  4       R # r   )r   PyImport_GetModuleDictassertIsr   modules)r   r%   s   & r   test_getmoduledictImportTests.test_getmoduledict   s"    "99;gs{{+r   c                f   R F  pV P                  VR7      ;_uu_ 4        V P                  V\        P                  4       \        P                  V,          pV! V4      pV P	                  V\
        P                  4       V P                  WC4       RRR4       K  	  R#   + '       g   i     K  ; i)osnameN)r)   r   testunittest)subTestassertInr   r%   assertIsInstancetypes
ModuleTyper$   )r   import_moduler+   
old_modulemodules   &&   r   check_import_loaded_module&ImportTests.check_import_loaded_module    s{    5D4((dCKK0 [[.
&t,%%fe.>.>?f1 )( 6(((s   A1BB0c                   \        \        P                  4      p R F  pV P                  VR7      ;_uu_ 4        \        P                  P	                  VR4       V! V4      pV P                  V\        P                  4       V P                  V\        P                  V,          4       V P                  VP                  V4       RRR4       K  	  \        P                  P                  4        \        P                  P                  V4       R#   + '       g   i     EK  ; i  \        P                  P                  4        \        P                  P                  T4       i ; i)colorsysr*   N)r9   math)dictr   r%   r.   popr0   r1   r2   r$   r   __name__clearupdate)r   r3   old_modulesr+   r5   s   &&   r   check_import_fresh_module%ImportTests.check_import_fresh_module)   s    3;;'
	,,\\t\,,KKOOD$/*40F))&%2B2BCMM&#++d*;<$$V__d; -, - KKKK{+ -,, KKKK{+s#   D& BDD& D#
D& &?E%c                r   \         P                  pV P                  V4       R pV P                  V\        P
                  4       V P                  V! V4      \        4       V P                  V! R4      \        4       V P                  V! \        4       4      \        4       V P                  \        V. 4       R# nonexistent N)r   PyImport_GetModuler6   assertNotInr   r%   r$   KeyErrorobjectassertRaises	TypeError)r   	getmodulerE   s   &  r   test_getmoduleImportTests.test_getmodule7   s    $77	''	2#ckk2i,h7imX.i)84)Y3r   c           	        R .pV'       d-   VP                  R4       VP                  \        R.4      4       V F  pV P                  VR7      ;_uu_ 4        V P                  V\        P
                  4        V! V4      pV P                  V\        P                  4       V P                  VP                  V4       V P                  V\        P
                  V,          4       \        P
                  P                  VR4        RRR4       K  	  V P                  V4       R#   \        P
                  P                  TR4       i ; i  + '       g   i     EK!  ; i)rE      hashable non-stringr*   N)appendtupler.   rH   r   r%   r0   r1   r2   r   r=   r$   r<   r6   )r   
add_moduleaccept_nonstrnamesr+   r5   s   &&&   r   check_addmoduleImportTests.check_addmoduleE   s    LL!LL 5678D4((  s{{30'-F))&%2B2BC$$V__d;MM&#++d*;<KKOOD$/ )(  	''
3 KKOOD$/ )((s%   !E	9A+D$$ E	$"E	E		Ec                z    \         P                  pV P                  VR R7       V P                  \        V. 4       R# )T)rV   N)r   PyImport_AddModuleObjectrX   rK   rL   )r   addmoduleobjects   & r   test_addmoduleobject ImportTests.test_addmoduleobjectZ   s2    *CC_DA)_b9r   c                v    \         P                  pV P                  V4       V P                  \        VR 4       R# rQ   N)r   PyImport_AddModulerX   rK   UnicodeDecodeError)r   	addmodules   & r   test_addmoduleImportTests.test_addmoduleb   s.    $77	Y',iAr   c                v    \         P                  pV P                  V4       V P                  \        VR 4       R# r`   )r   PyImport_AddModuleRefrX   rK   rb   )r   addmodulerefs   & r   test_addmodulerefImportTests.test_addmodulerefj   s.    '==\*,lGDr   c                    V P                  V4       V P                  V4       V P                  \        VR 4       V P                  \        VR4       R# rD   )r6   rA   rK   ModuleNotFoundError
ValueError)r   r3   s   &&r   check_import_funcImportTests.check_import_funcr   sC    ''6&&}5-}mL*mR8r   c                    \         P                  pV P                  V4       V P                  \        VR 4       V P                  \
        V\        4       R# s   osN)r   PyImport_Importrn   rK   rL   SystemErrorNULL)r   import_s   & r   test_importImportTests.test_importx   s?    "22w')We4+w5r   c                v    \         P                  pV P                  V4       V P                  \        VR 4       R# r`   )r   PyImport_ImportModulern   rK   rb   )r   importmodules   & r   test_importmoduleImportTests.test_importmodule   s.    '==|,,lGDr   c                    \         P                  p\        R \        34      ;_uu_ 4        V P	                  V4       V P                  \        VR4       RRR4       R#   + '       g   i     R# ; i)rF   rQ   N)r   PyImport_ImportModuleNoBlockr   DeprecationWarningrn   rK   rb   )r   importmodulenoblocks   & r   test_importmodulenoblock$ImportTests.test_importmodulenoblock   sQ    .KKR!3455""#6702EwO 6555s   )AA.	c                   \         P                  P                  R 4      p V P                  V! R 4      ^4       V P                  V! R 4      ^4       V\         P                  R &   V P                  V! R4      ^ 4       V P                  V! R4      ^ 4       V P                  V! R4      ^ 4       R#   T\         P                  R &   i ; i)	zipimportr   rE   rF   N)r   r%   r<   r   )r   import_frozen_moduleold_zipimports   && r   check_frozen_importImportTests.check_frozen_import   s     4	51+>B 1+>B'4CKK$ 	-e4a8-m<a@-b115 (5CKK$s   0B. .Cc                v    \         P                  pV P                  V4       V P                  \        VR 4       R# r`   )r   PyImport_ImportFrozenModuler   rK   rb   )r   importfrozenmodules   & r   test_importfrozenmodule#ImportTests.test_importfrozenmodule   s1    -II  !34,.@'Jr   c                    \         P                  pV P                  V4       V P                  V! R 4      ^ 4       V P                  V! \        4      ^ 4       R# )s	   zipimportN)r   !PyImport_ImportFrozenModuleObjectr   r   rt   )r   importfrozenmoduleobjects   & r   test_importfrozenmoduleobject)ImportTests.test_importfrozenmoduleobject   sI    #3#U#U   !9:1,?C1$7;r   c                6  a \         P                  oV P                  V3R  l4       V P                  \        SR\
        \
        \
        4       V P                  \        SR\
        \
        \
        4       V P                  \        SR\
        \
        \
        4       R# )c                 2   < S! V \         \         \         4      # r   rt   )r+   importmoduleexs   &r   <lambda>1ImportTests.test_importmoduleex.<locals>.<lambda>   s    N4tT,Rr   rE   rF   rQ   N)r   PyImport_ImportModuleExrn   rK   rl   rt   rm   rb   )r   r   s   &@r   test_importmoduleexImportTests.test_importmoduleex   sj    )AARS-~}dTXZ^_*nb$dK,ngtTSWXr   c                6  a V P                  V3R  l4       V P                  \        SR\        \        \        ^ 4       V P                  \        SR\        \        \        ^ 4       \
        '       d   V P                  S! R\        4       \        \        ^4      \        P                  R,          4       V P                  S! R\        4       \        \        ^4      \        P                  R,          4       V P                  \        SR\        \        \        R	4       V P                  \        4      ;_uu_ 4        V P                  \        SR/ \        \        ^4       RRR4       V P                  \        SR. \        \        ^4       R#   + '       g   i     L5; i)
c                 4   < S! V \         \         \         ^ 4      # )r   r   )r+   importmodulelevels   &r   r   5ImportTests.check_importmodulelevel.<locals>.<lambda>   s    ,=dD$PTVW,Xr   rE   rF   rv   ztest.test_capi.test_import	test_capiztest.test_capir)   N)rn   rK   rl   rt   rm   __package__r$   globalsr   r%   assertWarnsImportWarningrI   rL   r   r   s   &fr   check_importmodulelevel#ImportTests.check_importmodulelevel   s    XY-/@-QUW[]acde*&7T4qQ;MM+M79dDRST++&BCEMM+KD$PQR++&679*&7tT4QSTm,,h(9="dTXZ[\ -)%6r4QUWXY -,s   7$FF	c           	         \         P                  pV P                  V4       V P                  \        VR \
        \
        \
        ^ 4       R# r`   )r   PyImport_ImportModuleLevelr   rK   rb   rt   r   s   & r   test_importmodulelevel"ImportTests.test_importmodulelevel   s<    ,GG$$%67,.?$PTVZ\]^r   c           	         \         P                  pV P                  V4       V P                  \        VR \
        \
        \
        ^ 4       V P                  \        V\
        \
        \
        \
        ^ 4       R# rq   )r    PyImport_ImportModuleLevelObjectr   rK   rL   rt   rm   r   s   & r   test_importmodulelevelobject(ImportTests.test_importmodulelevelobject   sU    ,MM$$%67)%6tT4QRS*&7tT4QRSr   c                   R p V P                  V\        P                  4       \        P	                  V4      pV P                  VR4       \        RRR4      pV! W5.VO5!  pV P                  Wd4       V P                  VP                  ^4       \        P                  P                  VR4       VP                  P                  #   \        P                  P                  TR4       i ; i)test_import_executecodeattrattr = 1<test>execN)rH   r   r%   r   rg   assertNotHasAttrcompiler$   r   r   r<   __spec__origin)r   execute_codeargsr+   r5   codemodule2s   &&*    r   check_executecodemodule#ImportTests.check_executecodemodule   s    (	(T3;;/%;;DAF!!&&1 :x8D"455GMM'* V[[!,KKOOD$'%%% KKOOD$'s   BC "C'c                    \         P                  pV P                  V4       \        R RR4      pV P	                  \
        VRV4       R# r   r   r   rQ   N)r   PyImport_ExecCodeModuler   r   rK   rb   )r   execcodemoduler   s   &  r   test_executecodemodule"ImportTests.test_executecodemodule   s>    )AA$$^4z8V4,ngtLr   c                *   \         P                  pV P                  V\        4       R pV P                  W4      pV P	                  V\
        P                  P                  \
        P                  ! V4      4      4       \        P                  pV'       dU   V P                  W4      pV P	                  V\
        P                  P                  \
        P                  ! V4      4      4       \        RRR4      pV P                  \        VRV\        4       R# )s   pathnamer   r   r   rQ   N)r   PyImport_ExecCodeModuleExr   rt   r   r)   pathabspathfsdecoder   TESTFN_UNDECODABLEr   rK   rb   )r   execcodemoduleexpathnamer   r   s   &    r   test_executecodemoduleex$ImportTests.test_executecodemoduleex   s    +EE 	$$%5t< --.>IX1F!GH//112BMFVRWW__R[[5J%KLz8V4,.>tTr   c                   V P                  V\        \        4       R pV P                  W\        4      pV P                  V\        P                  P                  \        P                  ! V4      4      4       V P                  V\        V4      pV'       gD   V P                  V\        P                  P                  \        P                  ! V4      4      4       \        P                  pV'       d   V'       d   \        P                  ! V4      pV P                  W\        4      pV P                  V\        P                  P                  \        P                  ! V4      4      4       V P                  V\        V4       \        P                  P                  \        4      p\        P                  P                  V4      pV P                  V\        V4      pV'       g   V P                  WF4       R# R# )r   N)r   rt   r   r)   r   r   r   r   r   r   r   cache_from_source__file__source_from_cache)r   execute_code_funcrJ   r   r   pyc_filenamepy_filenames   &&&    r   check_executecode_pathnames'ImportTests.check_executecode_pathnames  sS    	$$%6dC--.?4PX1F!GH--.?xPVRWW__R[[5J%KL//;;x0112CtTFVRWW__R[[5J%KL(():D(K !~~77Ann66|D--.?|TV1 r   c                    \         P                  pV P                  V4       \        R RR4      pV P	                  \
        VRV\        \        4       R# r   )r   $PyImport_ExecCodeModuleWithPathnamesr   r   rK   rb   rt   )r   r   r   s   &  r   #test_executecodemodulewithpathnames/ImportTests.test_executecodemodulewithpathnames*  sG    ,QQ(():;z8V4,.?$PTVZ[r   c                D   \         P                  pV P                  VR R7       \        RRR4      pV P	                  \
        V. V\        \        4       \        R.4      pV P	                  \        WV\        \        4       \        P                  P                  VR4       R# )T)rJ   r   r   r   rR   N)r   PyImport_ExecCodeModuleObjectr   r   rK   rL   rt   rT   AttributeErrorr   r%   r<   )r   r   r   	nonstrings   &   r   test_executecodemoduleobject(ImportTests.test_executecodemoduleobject4  s    ,JJ(():4(Hz8V4)%6D$M012	.*;dTXY	4(r   c                p   V P                  V! R R4      \        P                  4       V P                  V! RR4      \        P                  4       V! RR4      p^ RIHp V P                  W#4       V P                  \        4      ;_uu_ 4        V! RR4       R	R	R	4       V P                  \        4      ;_uu_ 4        V! R R
4       R	R	R	4       V P                  \        4      ;_uu_ 4        V! R R4       R	R	R	4       R	#   + '       g   i     Lp; i  + '       g   i     LT; i  + '       g   i     R	# ; i)r   argvr1   r2   zemail.messageMessage)r   nonexistentmoduler   Nnonexistentattrzimplementation.name)
r$   r   r   r1   r2   email.messager   rK   ImportErrorr   )r   importmoduleattrr   r   s   &&  r   check_importmoduleattr"ImportTests.check_importmoduleattrA  s    &uf5sxx@&w=u?O?OP  ;)d${++0&9 , ~..U$56 / ~..U$9: /. ,+ /. /..s$   
C>;
D*
D$>D	D!	$D5	c           
        \         P                  pV P                  V4       \        4       ^{R3 FU  pV P	                  VR7      ;_uu_ 4        V P                  \        4      ;_uu_ 4        V! VR4       RRR4       RRR4       KW  	  \        4       ^{R3 FU  pV P	                  VR7      ;_uu_ 4        V P                  \        4      ;_uu_ 4        V! RV4       RRR4       RRR4       KW  	  V P                  \        4      ;_uu_ 4        V! \        R4       RRR4       R#   + '       g   i     L; i  + '       g   i     EK  ; i  + '       g   i     Ly; i  + '       g   i     K  ; i  + '       g   i     R# ; i){   s   bytes)mod_namer   N)	attr_namer   r   )	r   PyImport_ImportModuleAttrr   rJ   r.   rK   rL   rs   rt   )r   r   r   r   s   &   r   test_importmoduleattr!ImportTests.test_importmoduleattrT  s   $>>##$45  31Hx00&&y11$Xv6 2 10 2 !(C2I	22&&y11$UI6 2 32 3
 {++T6* ,+ 21 100 21 322 ,++sT   D6*
D#4D62E
EEE2#D3.D66EEEE/2F	c                R   \         P                  pV P                  V4       V P                  \        4      ;_uu_ 4        V! R R4       RRR4       V P                  \        4      ;_uu_ 4        V! RR4       RRR4       R#   + '       g   i     LA; i  + '       g   i     R# ; i)s   sysr   Nr   s   argv)r   PyImport_ImportModuleAttrStringr   rK   rb   )r   r   s   & r   test_importmoduleattrstring'ImportTests.test_importmoduleattrstringi  su    $DD##$45122Z0 3122UK0 32 32222s   
B.
BB	B&	 N)F)$r=   
__module____qualname____firstlineno__r   r    r&   r6   rA   rN   rX   r]   rd   ri   rn   rv   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r	   r	      s     P<
,
2,44*:BE96EP6"K<YZ _T&&MU,28\	);&+*1 1r   r	   __main__)importlib.utilr   os.pathr)   r   r1   r-   test.supportr   r   test.support.warnings_helperr   r3   r   r   rt   TestCaser	   r=   mainr   r   r   <module>r     sq      
   " & 7''4	 ../AB b1(## b1Z zMMO r   