
    z%i%                     >   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZddl	m
Z
 e j                  dd       Zd Zd Zd Zdd	d
dZd Ze j                  dd       Ze j                  dd       ZdddddZ G d de      Z G d de      Zd Zd Zd Zy)    N   )unlinkc              #      K   	 | r=t        j                         5  t        j                  ddt               d  d d d        y d  y # 1 sw Y   y xY ww)Nignorez.+ (module|package))warningscatch_warningsfilterwarningsDeprecationWarning)r   s    N/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/support/import_helper.py_ignore_deprecated_importsr      sS     
 $$& 	##H.C$68	 	
 		 	s   A AAAAc                 F    	 t         j                  | = y # t        $ r Y y w xY wN)sysmodulesKeyError)names    r   unloadr      s%    KK s    	  c                 
   	 t        |        t        j                  D ]d  }t        j                  j	                  || dz         }t        |dz          dD ],  }t        t        j                  j                  ||             . f y )Nz.pyc) r      )optimization)	r   r   pathosjoinr   	importlibutilcache_from_source)modnamedirnamesourceopts       r   forgetr#   %   sx    
 7O88 Ogw7 	v| 	OC9>>33F3MN	OO    c                 0   	 t         j                  j                  |       }t        j                  j                  t        j                  j                  |             }t        j                  j                  || dz         }t        j                  ||       |S )Nr   )
r   r   r   r   r   r    abspathr   shutilmove)r!   pyc_fileup_one
legacy_pycs       r   make_legacy_pycr,   5   sh     ~~//7HWW__RWW__V45Fffsl3J
KK*%r$   F )required_onc                "   	 t        |      5  	 t        j                  |       cd d d        S # t        $ rL}t        j
                  j                  t        |            r t        j                  t        |            d }~ww xY w# 1 sw Y   y xY wr   )r   r   import_moduleImportErrorr   platform
startswithtupleunittestSkipTeststr)r   
deprecatedr.   msgs       r   r0   r0   C   s     
$J	/ .	.**40. .  	.||&&u['9:##CH--	.. .s&   B-	BAA==BBBc                     i }t        d | D              }t        t        j                        D ]:  }|| v s|j	                  |      st        j                  j                  |      ||<   < |S )Nc              3   &   K   | ]	  }|d z     yw).Nr-   ).0r   s     r   	<genexpr>z+_save_and_remove_modules.<locals>.<genexpr>W   s     2DTCZ2s   )r4   listr   r   r3   pop)namesorig_modulesprefixesr   s       r   _save_and_remove_modulesrD   U   sc    L2E22H$ =ew11(;$'KKOOG$<L!= r$   c              #      K   	 t        j                  | rdnd       	 d  t        j                  d       y # t        j                  d       w xY ww)Nr   r   )_imp"_override_frozen_modules_for_tests)enableds    r   frozen_modulesrJ   ^   sC     
 	++AbA3//2//2   A8 AAAc              #      K   	 t        j                  | rdnd      }	 d  t        j                  |       y # t        j                  |       w xY ww)Nr   rF   )rG   '_override_multi_interp_extensions_check)rI   olds     r   multi_interp_extensions_checkrO   l   sE     
 
6
6Gq
LC:44S944S9rK   )r8   	usefrozenc                   	 t        |      5  t        |      }t        |      }| h||}t        |      }|D ]  }d t        j                  |<    	 t        |      5  	 |D ]  }t        |        	 t        j                  |       cd d d        t        |       t        j                  j                  |       cd d d        S # t        $ r= Y d d d        t        |       t        j                  j                  |       d d d        y w xY w# 1 sw Y   nxY w	 t        |       t        j                  j                  |       n/# t        |       t        j                  j                  |       w xY w	 d d d        y # 1 sw Y   y xY wr   )r   r?   rD   r   r   rJ   
__import__r1   updater   r0   )r   freshblockedr8   rP   rA   rB   r   s           r   import_fresh_modulerV      sm   < 
$J	/ - Uw-(((/6 	(G#'CKK 	(	-	* 5 #( ,"7+, !..t45 5 %U+KK|,+- -  #  5 %U+KK|,+- -  5 5 5 %U+KK|, %U+KK|,,+- - -sr   AE<EDC0D	E*E<	DDE*E<DDD	E+E<,E//E<<Fc                   &    e Zd Z	 dddZd Zd Zy)CleanImportF)rP   c                :   t         j                  j                         | _        |D ]c  }|t         j                  v st         j                  |   }|j                  |k7  rt         j                  |j                  = t         j                  |= e t        |      | _        y r   )r   r   copyoriginal_modules__name__rJ   _frozen_modules)selfrP   module_namesmodule_namemodules        r   __init__zCleanImport.__init__   sy     # 0 0 2' 		-Kckk)[1
 ??k1FOO4KK,		-  .i8r$   c                 :    | j                   j                          | S r   )r]   	__enter__r^   s    r   rd   zCleanImport.__enter__   s    &&(r$   c                     t         j                  j                  | j                          | j                  j
                  |  y r   )r   r   rS   r[   r]   __exit__r^   
ignore_excs     r   rg   zCleanImport.__exit__   s0    4001%%%z2r$   Nr\   
__module____qualname__rb   rd   rg   r-   r$   r   rX   rX      s     16 93r$   rX   c                        e Zd Z	 d Zd Zd Zy)DirsOnSysPathc                     t         j                  d d  | _        t         j                  | _        t         j                  j	                  |       y r   )r   r   original_valueoriginal_objectextend)r^   pathss     r   rb   zDirsOnSysPath.__init__   s.    !hhqk"xxr$   c                     | S r   r-   re   s    r   rd   zDirsOnSysPath.__enter__   s    r$   c                 h    | j                   t        _        | j                  t        j                  d d  y r   )rq   r   r   rp   rh   s     r   rg   zDirsOnSysPath.__exit__   s"    ''))r$   Nrj   r-   r$   r   rn   rn      s    	
*r$   rn   c                  @    t         j                  j                         fS r   )r   r   rZ   r-   r$   r   modules_setuprw      s    ;;r$   c                 N   t         j                  j                         D cg c]  \  }}|j                  d      r||f }}}t         j                  j	                          t         j                  j                  |       t         j                  j                  |        y c c}}w )Nz
encodings.)r   r   itemsr3   clearrS   )
oldmoduleskv	encodingss       r   modules_cleanupr      s|     %(KK$5$5$7 0DAqLL. Q 0I 0KKKKy! KKz"0s   B!c                 @    ddl m}  |j                  dd      |       S )Nr   )mockzos.register_at_forkT)create)r5   r   patch)funcr   s     r   mock_register_at_forkr     s"     94::+D:9$??r$   )T)F)r-   r-   )
contextlibrG   r   importlib.utilr   r'   r   r5   r   	os_helperr   contextmanagerr   r   r#   r,   r0   rD   rJ   rO   rV   objectrX   rn   rw   r   r   r-   r$   r   <module>r      s        	  
     O . .$ 
3 
3 : :&7-#("'7-t#3& #3L*F *2#$@r$   