???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    if/                     @   s  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	 ddgZ
G dd deZG dd deZdd	d
Zd ddZefddZG dd deZd!ddZd"ddZefddZdd Zd#ddZedkr
ee jdk  rede jd ne jd = ee jd   dS )$    N)	read_codeget_importer
run_modulerun_pathc                   @   s$   e Zd Zdd Zdd Zdd ZdS )_TempModulec                 C   s   || _ t|| _g | _d S N)mod_nametypes
ModuleTypemodule_saved_moduleselfr    r   */opt/alt/python38/lib64/python3.8/runpy.py__init__   s    z_TempModule.__init__c                 C   sB   | j }z| jtj|  W n tk
r0   Y nX | jtj|< | S r   )r   r   appendsysmodulesKeyErrorr   r   r   r   r   	__enter__    s    z_TempModule.__enter__c                 G   s.   | j r| j d tj| j< n
tj| j= g | _ d S Nr   )r   r   r   r   r   argsr   r   r   __exit__)   s    
z_TempModule.__exit__N__name__
__module____qualname__r   r   r   r   r   r   r   r      s   	r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )_ModifiedArgv0c                 C   s   || _ t  | _| _d S r   )valueobject_saved_value	_sentinel)r   r    r   r   r   r   1   s    z_ModifiedArgv0.__init__c                 C   s0   | j | jk	rtdtjd | _ | jtjd< d S )NzAlready preserving saved valuer   )r"   r#   RuntimeErrorr   argvr    )r   r   r   r   r   5   s    z_ModifiedArgv0.__enter__c                 G   s   | j | _| jtjd< d S r   )r#   r    r"   r   r%   r   r   r   r   r   ;   s    z_ModifiedArgv0.__exit__Nr   r   r   r   r   r   0   s   r   c           
   	   C   sn   |d k	r| | |d kr(d }|}d }	n |j}|j}|j}	|d krH|j}|j |||	d |||d t| | |S )N)r   __file__
__cached____doc__
__loader____package____spec__)updateloaderorigincachedparentexec)
codeZrun_globalsinit_globalsr   mod_specpkg_namescript_namer-   fnamer/   r   r   r   	_run_code@   s*    

r8   c           	   
   C   s^   |d kr|n|j }t|6}t|" |jj}t| |||||| W 5 Q R X W 5 Q R X | S r   )r.   r   r   r   __dict__r8   copy)	r2   r3   r   r4   r5   r6   r7   temp_modulemod_globalsr   r   r   _run_module_codeZ   s       r=   c                 C   s2  |  dr|d| d\}}}|rzt| W nH tk
rz } z*|jd ksh|j|krj| |jd sj W 5 d }~X Y nX tj| }|d k	rt|dsddl	m
} dj| |d}|t| ztj| }W nJ ttttfk
r }	 z"d}||| t|	j|	|	W 5 d }	~	X Y nX |d kr2|d	|  |jd k	r| d
ksT| dr\|dz| d }
t|
|W S  |k
r } z"| tjkr |d|| f W 5 d }~X Y nX |j}|d kr|d|  z|| }W n2 tk
r } z|t||W 5 d }~X Y nX |d kr(|d|  | ||fS )N.z#Relative module names not supported__path__r   )warnz{mod_name!r} found in sys.modules after import of package {pkg_name!r}, but prior to execution of {mod_name!r}; this may result in unpredictable behaviour)r   r5   z:Error while finding module specification for {!r} ({}: {})zNo module named %s__main__z	.__main__z%Cannot use package as __main__ modulez3%s; %r is a package and cannot be directly executedz0%r is a namespace package and cannot be executedzNo code object available for %s)
startswith
rpartition
__import__ImportErrornamer   r   gethasattrwarningsr@   formatRuntimeWarning	importlibutil	find_specAttributeError	TypeError
ValueErrortyper   submodule_search_locationsendswith_get_module_detailsr-   get_code)r   errorr5   _eZexistingr@   msgspecZexZpkg_main_namer-   r2   r   r   r   rU   h   sd    
 ,

 
rU   c                   @   s   e Zd ZdS )_ErrorN)r   r   r   r   r   r   r   r\      s   r\   Tc              
   C   s   z0|s| dkr t | t\} }}ntt\} }}W n: tk
rj } zdtj|f }t| W 5 d }~X Y nX tjd j}|r|jtj	d< t
||d d|S )NrA   z%s: %sr   )rU   r\   _get_main_module_detailsr   
executableexitr   r9   r.   r%   r8   )r   Z
alter_argvr4   r2   excrZ   Zmain_globalsr   r   r   _run_module_as_main   s     ra   Fc                 C   s@   t | \} }}|d kr| }|r,t||||S t|i |||S d S r   )rU   r=   r8   )r   r3   run_nameZ	alter_sysr4   r2   r   r   r   r      s    c              
   C   s   d}t j| }t j|= z\zt|W W NS  tk
rn } z*|t|kr\| d|t jd f | W 5 d }~X Y nX W 5 |t j|< X d S )NrA   zcan't find %r module in %rr   )r   r   rU   rE   strpath)rW   Z	main_nameZ
saved_mainr`   r   r   r   r]      s    
r]   c              	   C   sf   t jt |}t|}t|}W 5 Q R X |d kr^t|}t| |d}W 5 Q R X ||fS )Nr1   )	osrd   abspathfsdecodeio	open_coder   compileread)rb   r7   Zdecoded_pathfr2   r   r   r   _get_code_from_file   s    rm   c                 C   s$  |d krd}| dd }t| }d}t|jdkrFt|jdkrFd}t|td sX|rxt|| \}}t|||||dS tj	
d|  znt \}}	}t|P}
t| < |
jj}t|||||	| W  5 Q R  W  5 Q R  W S Q R X W 5 Q R X W 5 ztj	|  W n tk
r   Y nX X d S )	Nz
<run_path>r>   r   FZimpZNullImporterT)r5   r6   )rC   r   rR   r   r   
isinstancerm   r=   r   rd   insertremoverQ   r]   r   r   r   r9   r8   r:   )Z	path_namer3   rb   r5   ZimporterZis_NullImporterr2   r7   r   r4   r;   r<   r   r   r   r      s<    
 
  8rA      z!No module specified for execution)file)NNNNN)NNNNN)T)NNF)NN)r   importlib.machineryrL   importlib.utilrh   r	   re   Zpkgutilr   r   __all__r!   r   r   r8   r=   rE   rU   	Exceptionr\   ra   r   r]   rm   r   r   lenr%   printstderrr   r   r   r   <module>   sL           
       
:
    

1
