
   '(                   d   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
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dd	d	ddZ G d de          Z G d de          Zd Zd Ze j        d             Zd Ze j        dd            ZdS )    N   )unlinktemp_dirTc              #      K   	 | rMt          j                    5  t          j        ddt                     d V  d d d            d S # 1 swxY w Y   d S d V  d S )Nignorez.+ (module|package))warningscatch_warningsfilterwarningsDeprecationWarning)r   s    h/nix/store/c6yb989sl77467xxwhylnkph1pqyi47p-python3-3.11.15/lib/python3.11/test/support/import_helper.py_ignore_deprecated_importsr      s      
  $&& 	 	#H.C$68 8 8EEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	s    AA
A
c                 D    	 t           j        | = d S # t          $ r Y d S w xY wN)sysmodulesKeyError)names    r   unloadr      s9    K   s    
c                    	 t          |            t          j        D ]j}t          j                            || dz             }t          |dz              dD ]0}t          t          j                            ||                     1kd S )Nz.pyc) r      )optimization)	r   r   pathosjoinr   	importlibutilcache_from_source)modnamedirnamesourceopts       r   forgetr$   %   s    
 7OOO8 O Ogw77 	v| 	O 	OC9>33F3MMNNNN	OO O    c                 .   	 t           j                            |           }t          j                            t          j                            |                     }t          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   sp     ~//77HW__RW__V4455Fffsl33J
K*%%%r%   F )required_onc                @   	 t          |          5  	 t          j        |           cd d d            S # t          $ rS}t          j                            t          |                    r t          j	        t          |                    d }~ww xY w# 1 swxY w Y   d S r   )r   r   import_moduleImportErrorr   platform
startswithtupleunittestSkipTeststr)r   
deprecatedr/   msgs       r   r1   r1   C   s     
$J	/	/ . .	.*400. . . . . . . .  	. 	. 	.|&&u['9'9:: #CHH---	.. . . . . . . . . .s,   B3
BABBBBBc                     i }t          d | D                       }t          t          j                  D ]=}|| v s|                    |          r"t          j                            |          ||<   >|S )Nc              3       K   | ]	}|d z   V  
dS ).Nr.   ).0r   s     r   	<genexpr>z+_save_and_remove_modules.<locals>.<genexpr>W   s&      22DTCZ222222r%   )r5   listr   r   r4   pop)namesorig_modulesprefixesr    s       r   _save_and_remove_modulesrE   U   sy    L22E22222H$$ = =ew11(;;$'KOOG$<$<L!r%   c              #      K   	 t          j        | rdnd           	 d V  t          j        d           d S # t          j        d           w xY w)Nr   r   )_imp"_override_frozen_modules_for_tests)enableds    r   frozen_modulesrK   ^   sc      
 	+,@AAbAAA3/22222/2222s	   7 A)r9   	usefrozenc                r   	 t          |          5  t          |          }t          |          }| h||}t          |          }|D ]}d t          j        |<   	 t          |          5  	 |D ]}t          |           nU# t          $ rH Y d d d            t          |           t          j                            |           d d d            d S w xY wt          j
        |           cd d d            t          |           t          j                            |           cd d d            S # 1 swxY w Y   	 t          |           t          j                            |           n3# t          |           t          j                            |           w xY w	 d d d            d S # 1 swxY w Y   d S r   )r   r@   rE   r   r   rK   
__import__r2   updater   r1   )r   freshblockedr9   rL   rB   rC   r    s           r   import_fresh_modulerR   l   s   < 
$J	/	/ - - Uw--(((/66 	( 	(G#'CK  	-	** 5 5 #( , ,"7++++,"      5 5 5 5 5 5 %U+++K|,,,+- - - - - - - -   .t445 5 5 5 5 5 5 %U+++K|,,,+- - - - - - - -5 5 5 5 5 5 5 5 5 %U+++K|,,,, %U+++K|,,,,,+- - - - - - - - - - - - - - - - - -s   A	F,E+*D0,B D0
CD0E+.F,CD0)E+5.F,0D4	4E+7D4	8E+</F,+0FF,,F03F0c                   (    e Zd Z	 dddZd Zd ZdS )CleanImportF)rL   c                   t           j                                        | _        |D ]L}|t           j        v r<t           j        |         }|j        |k    rt           j        |j        = t           j        |= Mt          |          | _        d S r   )r   r   copyoriginal_modules__name__rK   _frozen_modules)selfrL   module_namesmodule_namemodules        r   __init__zCleanImport.__init__   s|     # 0 0 2 2' 		- 		-Kck))[1
 ?k11FO4K,-i88r%   c                 8    | j                                          | S r   )rY   	__enter__rZ   s    r   r`   zCleanImport.__enter__   s    &&(((r%   c                 l    t           j                            | j                    | j        j        |  d S r   )r   r   rO   rW   rY   __exit__rZ   
ignore_excs     r   rc   zCleanImport.__exit__   s4    40111%%z2222r%   NrX   
__module____qualname__r^   r`   rc   r.   r%   r   rT   rT      sU         16 9 9 9 9 9  3 3 3 3 3r%   rT   c                   "    e Zd Z	 d Zd Zd ZdS )DirsOnSysPathc                     t           j        d d          | _        t           j        | _        t           j                            |           d S r   )r   r   original_valueoriginal_objectextend)rZ   pathss     r   r^   zDirsOnSysPath.__init__   s8    !hqqqk"xr%   c                     | S r   r.   ra   s    r   r`   zDirsOnSysPath.__enter__   s    r%   c                 T    | j         t          _        | j        t          j        d d <   d S r   )rm   r   r   rl   rd   s     r   rc   zDirsOnSysPath.__exit__   s"    ')r%   Nrf   r.   r%   r   rj   rj      sF        	  
  * * * * *r%   rj   c                  @    t           j                                        fS r   )r   r   rV   r.   r%   r   modules_setuprs      s    ;r%   c                    d t           j                                        D             }t           j                                         t           j                            |           t           j                            |            d S )Nc                 F    g | ]\  }}|                     d           ||fS )z
encodings.)r4   )r>   kvs      r   
<listcomp>z#modules_cleanup.<locals>.<listcomp>   s@     0 0 0DAqLL..0!Q 0 0 0r%   )r   r   itemsclearrO   )
oldmodules	encodingss     r   modules_cleanupr}      su    0 0CK$5$5$7$7 0 0 0IKKy!!! Kz"""""r%   c               #   |   K   	 t                      \  } 	 d V  t          |            d S # t          |            w xY wr   )rs   r}   )saveds    r   isolated_modulesr      sN       HUs   * ;c                 N    ddl m}  |                    dd          |           S )Nr   )mockzos.register_at_forkT)create)r6   r   patch)funcr   s     r   mock_register_at_forkr     s7     94::+D:99$???r%   r   c              #   :  K   ddl m} | pd} t                      5 }|                    || |          }t          j                            | d           }	 t          j                            d|           | |fV  t          j        	                    |           ||t          j        | <   nXt          j                            | d            n7# ||t          j        | <   w t          j                            | d            w xY wd d d            d S # 1 swxY w Y   d S )Nr   )script_helperspam)
test.supportr   r   make_scriptr   r   rA   r   insertremove)r   r"   r   tempdirr   
old_modules         r   ready_to_importr     s[     ****** >6D	 ,w(($??[__T400
	,HOOAw'''*HOOG$$$%$.D!!d++++ %$.D!!d++++, , , , , , , , , , , , , , , , , ,s*   8DAC3D4D  DDD)T)F)r.   r.   )Nr   )
contextlibrH   r   importlib.utilr   r(   r   r6   r   	os_helperr   r   contextmanagerr   r   r$   r-   r1   rE   rK   rR   objectrT   rj   rs   r}   r   r   r   r.   r%   r   <module>r      s                				  



   ' ' ' ' ' ' ' '      O O O   . . . . . .$   
3 
3 
3 
37-#("'7- 7- 7- 7- 7-t#3 #3 #3 #3 #3& #3 #3 #3L* * * * *F * * *2  # # #$   @ @ @ , , , , , ,r%   