add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
3

�
�^j3c@s�ddlZddlZddlZddlmZddlmZdddddd	d
dgZGdd�dej�Z	Gd
d�de
�ZGdd�dee	�Zdd�Z
Gdd�de	�ZGdd�de	�ZGdd	�d	e�ZGdd
�d
e�ZGdd�de	�ZGdd�de	�ZdS)�N)�deque��wraps�contextmanager�closing�AbstractContextManager�ContextDecorator�	ExitStack�redirect_stdout�redirect_stderr�suppressc@s.eZdZdd�Zejdd��Zedd��ZdS)rcC�|S�N���selfrr�"/usr/lib64/python3.6/contextlib.py�	__enter__�z AbstractContextManager.__enter__cC�dSr
r)r�exc_typeZ	exc_value�	tracebackrrr�__exit__szAbstractContextManager.__exit__cCs|tkrtj|dd�StS)Nrr)r�_collections_abcZ_check_methodsZNotImplemented)ZclsZCrrr�__subclasshook__sz'AbstractContextManager.__subclasshook__N)	�__name__�
__module__�__qualname__r�abcZabstractmethodrZclassmethodrrrrrr
sc@seZdZdd�Zdd�ZdS)rcCrr
rrrrr�_recreate_cm$�
zContextDecorator._recreate_cmcst����fdd��}|S)Nc
s�j���||�SQRXdSr
)r��args�kwds��funcrrr�inner1s
z(ContextDecorator.__call__.<locals>.innerr)rr$r%rr#r�__call__0szContextDecorator.__call__N)rrrrr&rrrrr!sc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�_GeneratorContextManagercCsJ|||�|_||||_|_|_t|dd�}|dkr@t|�j}||_dS)N�__doc__)�genr$r!r"�getattr�typer()rr$r!r"Zdocrrr�__init__;s
z!_GeneratorContextManager.__init__cCs|j|j|j|j�Sr
)Z	__class__r$r!r"rrrrrIsz%_GeneratorContextManager._recreate_cmcCs.y
t|j�Stk
r(td�d�YnXdS)Nzgenerator didn't yield)�nextr)�
StopIteration�RuntimeErrorrrrrrOs
z"_GeneratorContextManager.__enter__cCs�|dkr6yt|j�Wntk
r*dSXtd��n�|dkrD|�}y|jj|||�Wn�tk
r|}z||k	Sd}~Xnftk
r�}z*||kr�dS|tkr�|j|kr�dS�WYdd}~Xn"tj�d|kr�dS�YnXtd��dS)NFzgenerator didn't stop�z#generator didn't stop after throw())r-r)r.r/ZthrowZ	__cause__�sys�exc_info)rr+Zvaluer�excrrrrUs.
z!_GeneratorContextManager.__exit__N)rrrr,rrrrrrrr'8sr'cst���fdd��}|S)Ncst�||�Sr
)r'r �r$rr�helper�rzcontextmanager.<locals>.helperr)r$r5rr4rr�sc@�$eZdZdd�Zdd�Zdd�ZdS)rcC�
||_dSr
��thing)rr9rrrr,��zclosing.__init__cCs|jSr
r8rrrrr�r:zclosing.__enter__cGs|jj�dSr
)r9�close)rr2rrrr�r:zclosing.__exit__N�rrrr,rrrrrrr�sc@s(eZdZdZdd�Zdd�Zdd�ZdS)�_RedirectStreamNcCs||_g|_dSr
)�_new_target�_old_targets)rZ
new_targetrrrr,�sz_RedirectStream.__init__cCs*|jjtt|j��tt|j|j�|jSr
)r?�appendr*r1�_stream�setattrr>rrrrr�sz_RedirectStream.__enter__cCstt|j|jj��dSr
)rBr1rAr?�pop�rZexctypeZexcinstZexctbrrrr�r:z_RedirectStream.__exit__)rrrrAr,rrrrrrr=�sr=c@�eZdZdZdS)r	ZstdoutN�rrrrArrrrr	�s
c@rE)r
ZstderrNrFrrrrr
�sc@r6)rcGr7r
)�_exceptions)rZ
exceptionsrrrr,�r:zsuppress.__init__cCrr
rrrrrr�r:zsuppress.__enter__cCs|dk	ot||j�Sr
)Z
issubclassrGrDrrrr�rzsuppress.__exit__Nr<rrrrr�sc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)rcCst�|_dSr
)r�_exit_callbacksrrrrr,r:zExitStack.__init__cCst|��}|j|_t�|_|Sr
)r+rHr)rZ	new_stackrrr�pop_alls
zExitStack.pop_allcs"��fdd�}�|_|j|�dS)Ncs��f|��Sr
r)�exc_details��cm�cm_exitrr�
_exit_wrapperr:z.ExitStack._push_cm_exit.<locals>._exit_wrapper)Z__self__�push)rrLrMrNrrKr�
_push_cm_exitszExitStack._push_cm_exitcCsDt|�}y
|j}Wn tk
r2|jj|�YnX|j||�|Sr
)r+rZAttributeErrorrHr@rP)rZexitZ_cb_typeZexit_methodrrrrO s

zExitStack.pushcs$���fdd�}�|_|j|��S)Ncs����dSr
r)rr3Ztb�r!�callbackr"rrrN9r:z)ExitStack.callback.<locals>._exit_wrapper)Z__wrapped__rO)rrRr!r"rNrrQrrR4s
zExitStack.callbackcCs(t|�}|j}|j|�}|j||�|Sr
)r+rrrP)rrLZ_cm_typeZ_exitZresultrrr�
enter_contextAs

zExitStack.enter_contextcCs|jddd�dSr
)rrrrrr;NrzExitStack.closec	s�|ddk	}tj�d��fdd�}d}d}x\|jr�|jj�}y||�rTd}d}d}Wq.tj�}||d|d�d}|}Yq.Xq.W|r�y|dj}|d�Wn tk
r�||d_�YnX|o�|S)Nrr0cs8x,|j}||krdS|dks$|�kr&P|}qW||_dSr
)�__context__)Znew_excZold_excZexc_context�Z	frame_excrr�_fix_exception_contextXsz2ExitStack.__exit__.<locals>._fix_exception_contextFT)NNN)r1r2rHrCrTZ
BaseException)	rrJZreceived_excrVZsuppressed_excZ
pending_raiseZcbZnew_exc_detailsZ	fixed_ctxrrUrrRs2


zExitStack.__exit__N)rrrr,rIrPrOrRrSr;rrrrrrs

)rr1rZcollectionsrZ	functoolsrZ__all__ZABCrZobjectrr'rrr=r	r
rrrrrrZ<module>s"I"