add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
a

Z��^9,c@s(ddlmZddlmZddlmZddlmZddlmZddlmZddlm	Z	ddlm
Z
dd	lmZdd
lmZddlm
Z
dd
lmZddlZddlZddlZddlZddlZdd�Zdd�Zd#dd�Zd$dd�Zedd��Zdd�Zdd�Zdd�ZGdd �d ej�ZGd!d"�d"ej�Z dS)%�)�abc)�module_from_spec)�
_resolve_name)�spec_from_loader)�
_find_spec)�MAGIC_NUMBER)�_RAW_MAGIC_NUMBER)�cache_from_source)�
decode_source)�source_from_cache)�spec_from_file_location�)�contextmanagerNcCst�t|�S�N)�_imp�source_hashr)Zsource_bytes�r�&/usr/lib64/python3.9/importlib/util.pyrsrcCs\|�d�s|S|s&tdt|��d���d}|D]}|dkr>qH|d7}q.t||d�||�S)N�.zno package specified for z% (required for relative module names)rr)�
startswith�ImportErrorZreprr)�name�packageZlevelZ	characterrrr�resolve_names
�

rcCsv|tjvrt||�Stj|}|dur*dSz
|j}Wn"tyVtd�|��d�Yn0|durntd�|���|SdS)N�{}.__spec__ is not set�{}.__spec__ is None)�sys�modulesr�__spec__�AttributeError�
ValueError�format)rZpath�module�specrrr�_find_spec_from_path*s



r#c	
Cs�|�d�rt||�n|}|tjvr�|�d�d}|r�t|dgd�}z
|j}Wq�ty�}z&td|�d|��|d�|�WYd}~q�d}~00nd}t	||�Stj|}|dur�dSz
|j
}Wn"ty�td�|��d�Yn0|dur�td	�|���|SdS)
Nrr�__path__)Zfromlistz __path__ attribute not found on z while trying to find )rrr)
rrrr�
rpartitionZ
__import__r$rZModuleNotFoundErrorrrrr )	rr�fullnameZparent_nameZparentZparent_pathZer!r"rrr�	find_specIs<

����


r'ccs�|tjv}tj�|�}|s6tt�|�}d|_|tj|<zLz
|VWn6tyx|stztj|=WntyrYn0Yn0Wd|_nd|_0dS)NTF)rrZgetZtypeZ__initializing__Z	ExceptionZKeyError)rZ	is_reloadr!rrr�_module_to_loadvs


r(c�t����fdd��}|S)NcsVtjdtdd��|i|��}t|dd�durR|j|_t|d�sR|j�d�d|_|S)N�7The import system now takes care of this automatically.��Z
stacklevel�__package__r$rr)�warnings�warn�DeprecationWarning�getattr�__name__r-�hasattrr%)�args�kwargsr!��fxnrr�set_package_wrapper�s�
z(set_package.<locals>.set_package_wrapper��	functools�wraps)r7r8rr6r�set_package�s	r<cr))Ncs@tjdtdd��|g|�Ri|��}t|dd�dur<||_|S)Nr*r+r,�
__loader__)r.r/r0r1r=)�selfr4r5r!r6rr�set_loader_wrapper�s�z&set_loader.<locals>.set_loader_wrapperr9)r7r?rr6r�
set_loader�sr@cs*tjdtdd�t����fdd��}|S)Nr*r+r,c
s�t|��p}||_z|�|�}Wnttfy4Yn0|rB||_n|�d�d|_�||g|�Ri|��Wd�S1s~0YdS)Nrr)r(r=�
is_packagerrr-r%)r>r&r4r5r!rAr6rr�module_for_loader_wrapper�s
z4module_for_loader.<locals>.module_for_loader_wrapper)r.r/r0r:r;)r7rBrr6r�module_for_loader�s�rCc@seZdZdd�Zdd�ZdS)�_LazyModulec	Cs�tj|_|jj}|jjd}|jjd}|j}i}|��D]:\}}||vrT|||<q:t||�t||�kr:|||<q:|jj	�
|�|tjvr�t|�ttj|�kr�t
d|�d���|j�|�t||�S)N�__dict__�	__class__zmodule object for z. substituted in sys.modules during a lazy load)�types�
ModuleTyperFrr�loader_staterEZitemsZid�loader�exec_modulerrrZupdater1)	r>�attrZ
original_nameZ
attrs_thenZ
original_typeZ	attrs_nowZ
attrs_updatedZkeyZvaluerrr�__getattribute__�s&


�
z_LazyModule.__getattribute__cCs|�|�t||�dSr)rMZdelattr)r>rLrrr�__delattr__s
z_LazyModule.__delattr__N)r2�
__module__�__qualname__rMrNrrrrrD�s#rDc@s<eZdZedd��Zedd��Zdd�Zdd�Zd	d
�Z	dS)�
LazyLoadercCst|d�std��dS)NrKz loader must define exec_module())r3Z	TypeError)rJrrrZ__check_eager_loaders
zLazyLoader.__check_eager_loadercs������fdd�S)Ncs��|i|���Srr)r4r5�ZclsrJrrZ<lambda>sz$LazyLoader.factory.<locals>.<lambda>)�_LazyLoader__check_eager_loaderrRrrRr�factorys
zLazyLoader.factorycCs|�|�||_dSr)rSrJ)r>rJrrr�__init__s
zLazyLoader.__init__cCs|j�|�Sr)rJ�
create_module)r>r"rrrrVszLazyLoader.create_modulecCs@|j|j_|j|_i}|j��|d<|j|d<||j_t|_dS)NrErF)rJrr=rEZcopyrFrIrD)r>r!rIrrrrK s

zLazyLoader.exec_moduleN)
r2rOrPZstaticmethodrSZclassmethodrTrUrVrKrrrrrQ
s

rQrr)!ZrZ
_bootstraprrrrZ_bootstrap_externalrrrr	r
rZ
contextlibr
rr:rrGr.rrr#r'r(r<r@rCrHrDZLoaderrQrrrrZ<module>s6

-
'/