B
    u9aA                 @   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Zd dlZddddgZ	G dd de
ZG dd de jZdd	 ZdddZdddZedkree  dS )    NcompilemainPyCompileErrorPycInvalidationModec               @   s   e Zd ZdddZdd ZdS )r    c             C   st   |j }|tkr2dt||}|dd| }nd||f }t| |pJ|||| || _|| _	|| _
|pl|| _d S )Nr   zFile "<string>"z	File "%s"zSorry: %s: %s)__name__SyntaxErrorjoin	tracebackformat_exception_onlyreplace	Exception__init__exc_type_name	exc_valuefilemsg)selfexc_typer   r   r   r   tbtexterrmsg r    /usr/lib/python3.7/py_compile.pyr   .   s    
zPyCompileError.__init__c             C   s   | j S )N)r   )r   r   r   r   __str__>   s    zPyCompileError.__str__N)r   )r   
__module____qualname__r   r   r   r   r   r   r      s   
c               @   s   e Zd ZdZdZdZdS )r            N)r   r   r   	TIMESTAMPCHECKED_HASHUNCHECKED_HASHr   r   r   r   r   B   s   c               C   s   t jdrtjS tjS d S )NSOURCE_DATE_EPOCH)osenvirongetr   r    r   r   r   r   r   _get_default_invalidation_modeH   s    r&   Fc          
   C   s  |d krt  }|d krL|dkr@|dkr*|nd}tjj| |d}ntj| }tj|rld}t||n*tj	|rtj
|sd}t||tjd| }|| }	y|j|	|p| |d}
W nV tk
r } z6t|j||p| }|r|ntj|jd	  d S W d d }~X Y nX y tj|}|r<t| W n tk
rT   Y nX |tjkr|| }tj|
|d
 |d }n"tj|	}tj|
||tjk}tj | }tj!||| |S )Nr   r   r   )optimizationzc{} is a symlink and will be changed into a regular file if import writes a byte-compiled file to itzk{} is a non-regular file and will be changed into a regular one if import writes a byte-compiled file to itz<py_compile>)	_optimize
mtimesize)"r&   	importlibutilcache_from_sourcer#   pathislinkFileExistsErrorformatexistsisfile	machinerySourceFileLoaderget_datasource_to_coder   r   	__class__sysstderrwriter   dirnamemakedirsr   r   
path_stats_bootstrap_external_code_to_timestamp_pycsource_hash_code_to_hash_pycr    
_calc_mode_write_atomic)r   cfiledfiledoraiseoptimizeinvalidation_moder(   r   loadersource_bytescodeerrpy_excr>   source_statsbytecoderC   moder   r   r   r   O   sV    +


c             C   s"  | d krt jdd  } d}| dgkrxt j }|s6P |d}yt|dd W q& tk
r } zd}t jd|j	  W d d }~X Y q& t
k
r } zd}t jd|  W d d }~X Y q&X q&W nZxX| D ]P}yt|dd W q tk
r } zd}t jd|j	  W d d }~X Y qX qW |S )Nr   r   -r*   T)rI   z%s
)r;   argvstdinreadlinerstripr   r   r<   r=   r   OSError)argsrvfilenameerrorr   r   r   r      s0    


"(
(__main__)NNFr'   N)N)enumZimportlib._bootstrap_externalr-   Zimportlib.machineryimportlib.utilr#   Zos.pathr;   r
   __all__r   r   Enumr   r&   r   r   r   exitr   r   r   r   <module>   s    0 
]
&