add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
B

�/g^�/c@s�ddlZddlZddlZddlZddlZddlmZddlmZdd�Z	ifdd�Z
ifd	d
�Zifdd�Zd
d�Z
Gdd�dej�ZGdd�dej�Zddd�ZdS)�N�)�handler)�	xmlreadercCs&x |��D]\}}|�||�}q
W|S�N)�items�replace)ZsZdZkey�value�r�(/usr/lib64/python3.7/xml/sax/saxutils.py�__dict_replacesr
cCs6|�dd�}|�dd�}|�dd�}|r2t||�}|S)N�&�&amp;�>�&gt;�<�&lt;�rr
��dataZentitiesrrr	�escapes	
rcCs2|�dd�}|�dd�}|r&t||�}|�dd�S)Nrrrr
rrrrrrr	�unescape"s

rcCs\|��}|�dddd��t||�}d|krPd|krFd|�dd�}qXd	|}nd|}|S)
Nz&#10;z&#13;z&#9;)�
z
z	z"z'z"%s"z&quot;z'%s')�copyZupdaterrrrrr	�	quoteattr0s

rcs��dkrddl}|jSt�tj�r&�St�tjtjf�r<�St�tj�rlG�fdd�d�}|�}dd�|_	nDt�
�}dd�|_�j|_y�j
|_
�j|_Wntk
r�YnXtj||ddd	d
�S)NrcseZdZ�jZ�fdd�ZdS)z _gettextwriter.<locals>._wrappercs
t�|�Sr)Zgetattr��self�name��outrr	�__getattr__[�z,_gettextwriter.<locals>._wrapper.__getattr__N)�__name__�
__module__�__qualname__Z	__class__rrrrr	�_wrapperYsr#cSsdSrrrrrr	�<lambda>^�z _gettextwriter.<locals>.<lambda>cSsdS)NTrrrrr	r$cr%ZxmlcharrefreplacerT)�encodingZerrorsZnewlineZ
write_through)�sysZstdout�
isinstance�ioZ
TextIOBase�codecsZStreamWriterZStreamReaderWriterZ	RawIOBaseZcloseZBufferedIOBaseZwritable�writeZseekableZtellZAttributeErrorZ
TextIOWrapper)rr&r'r#Zbufferrrr	�_gettextwriterHs.
r,c@s�eZdZd dd�Zdd�Zd!dd	�Zd
d�Zdd
�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)"�XMLGeneratorN�
iso-8859-1FcCsVtj�|�t||�}|j|_|j|_ig|_|jd|_	g|_
||_||_d|_
dS)N�����F)r�ContentHandler�__init__r,r+�_writeZflush�_flush�_ns_contexts�_current_context�_undeclared_ns_maps�	_encoding�_short_empty_elements�_pending_start_element)rrr&Zshort_empty_elementsrrr	r1ss
zXMLGenerator.__init__cCsJ|drBd|dkr d|dS|j|d}|rB|d|dS|dS)Nrz$http://www.w3.org/XML/1998/namespacezxml:rz:)r5)rr�prefixrrr	�_qnameszXMLGenerator._qnamecCs|jr|�d�d|_dS)Nr
F�r9r2)r�
endElementrrr	�_finish_pending_start_element�s
z*XMLGenerator._finish_pending_start_elementcCs|�d|j�dS)Nz$<?xml version="1.0" encoding="%s"?>
)r2r7�rrrr	�
startDocument�szXMLGenerator.startDocumentcCs|��dSr)r3r?rrr	�endDocument�rzXMLGenerator.endDocumentcCs0|j�|j���||j|<|j�||f�dSr)r4Zappendr5rr6�rr:�urirrr	�startPrefixMapping�s
zXMLGenerator.startPrefixMappingcCs|jd|_|jd=dS)Nr/)r4r5�rr:rrr	�endPrefixMapping��zXMLGenerator.endPrefixMappingcCs^|��|�d|�x*|��D]\}}|�d|t|�f�q W|jrPd|_n
|�d�dS)Nr� %s=%sTr
)r>r2rrr8r9)rr�attrsrrrr	�startElement�szXMLGenerator.startElementcCs*|jr|�d�d|_n|�d|�dS�Nz/>Fz</%s>r<rrrr	r=��
zXMLGenerator.endElementcCs�|��|�d|�|��x8|jD].\}}|rD|�d||f�q$|�d|�q$Wg|_x0|��D]$\}}|�d|�|�t|�f�qfW|jr�d|_n
|�d�dS)Nrz xmlns:%s="%s"z xmlns="%s"rHTr
)r>r2r;r6rrr8r9)rr�qnamerIr:rCrrrr	�startElementNS�s zXMLGenerator.startElementNScCs0|jr|�d�d|_n|�d|�|��dSrK)r9r2r;�rrrMrrr	�endElementNS�rLzXMLGenerator.endElementNScCs4|r0|��t|t�s"t||j�}|�t|��dSr)r>r(�strr7r2r�rZcontentrrr	�
characters��

zXMLGenerator.characterscCs0|r,|��t|t�s"t||j�}|�|�dSr)r>r(rQr7r2rRrrr	�ignorableWhitespace�rTz XMLGenerator.ignorableWhitespacecCs|��|�d||f�dS)Nz	<?%s %s?>)r>r2�rZtargetrrrr	�processingInstruction�sz"XMLGenerator.processingInstruction)Nr.F)F)r r!r"r1r;r>r@rArDrFrJr=rNrPrSrUrWrrrr	r-qs


r-c@s�eZdZd:dd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�ZdS);�
XMLFilterBaseNcCstj�|�||_dSr)r�	XMLReaderr1�_parent�rZparentrrr	r1�rGzXMLFilterBase.__init__cC�|j�|�dSr)�_err_handler�error�rZ	exceptionrrr	r^�rzXMLFilterBase.errorcCr\r)r]�
fatalErrorr_rrr	r`�rzXMLFilterBase.fatalErrorcCr\r)r]�warningr_rrr	ra�rzXMLFilterBase.warningcCr\r)�
_cont_handler�setDocumentLocator)rZlocatorrrr	rc�rz XMLFilterBase.setDocumentLocatorcC�|j��dSr)rbr@r?rrr	r@rzXMLFilterBase.startDocumentcCrdr)rbrAr?rrr	rArzXMLFilterBase.endDocumentcC�|j�||�dSr)rbrDrBrrr	rDrz XMLFilterBase.startPrefixMappingcCr\r)rbrFrErrr	rF	rzXMLFilterBase.endPrefixMappingcCrer)rbrJ)rrrIrrr	rJrzXMLFilterBase.startElementcCr\r)rbr=rrrr	r=rzXMLFilterBase.endElementcC�|j�|||�dSr)rbrN)rrrMrIrrr	rNrzXMLFilterBase.startElementNScCrer)rbrPrOrrr	rPrzXMLFilterBase.endElementNScCr\r)rbrSrRrrr	rSrzXMLFilterBase.characterscCr\r)rbrU)rZcharsrrr	rUrz!XMLFilterBase.ignorableWhitespacecCrer)rbrWrVrrr	rWrz#XMLFilterBase.processingInstructioncCr\r)rb�
skippedEntityrrrr	rg!rzXMLFilterBase.skippedEntitycCrfr)�_dtd_handler�notationDecl)rr�publicId�systemIdrrr	ri&rzXMLFilterBase.notationDeclcCs|j�||||�dSr)rh�unparsedEntityDecl)rrrjrkZndatarrr	rl)rz XMLFilterBase.unparsedEntityDeclcCs|j�||�Sr)Z_ent_handler�
resolveEntity)rrjrkrrr	rm.rzXMLFilterBase.resolveEntitycCs@|j�|�|j�|�|j�|�|j�|�|j�|�dSr)rZZsetContentHandlerZsetErrorHandlerZsetEntityResolverZ
setDTDHandler�parse)r�sourcerrr	rn3s
zXMLFilterBase.parsecCr\r)rZ�	setLocale)rZlocalerrr	rp:rzXMLFilterBase.setLocalecC�|j�|�Sr)rZ�
getFeaturerrrr	rr=rzXMLFilterBase.getFeaturecCrer)rZ�
setFeature)rrZstaterrr	rs@rzXMLFilterBase.setFeaturecCrqr)rZ�getPropertyrrrr	rtCrzXMLFilterBase.getPropertycCrer)rZ�setProperty)rrrrrr	ruFrzXMLFilterBase.setPropertycCs|jSr�rZr?rrr	�	getParentKrzXMLFilterBase.getParentcCs
||_dSrrvr[rrr	�	setParentNrzXMLFilterBase.setParentr)r r!r"r1r^r`rarcr@rArDrFrJr=rNrPrSrUrWrgrirlrmrnrprrrsrtrurwrxrrrr	rX�s8
rX�cCst|t�rt�|�}n^t|d�rt|}t��}t|�d�t�rH|�|�n
|�|�t|d�rtt|jt�rt|�	|j�|�
�dk�r
|��dk�r
|��}t
j�t
j�|��}t
j�||�}t
j�|�r�|�	|�t|d�}n$|�	tj�||��tj�|���}|�|�|S)N�readrrZrb)r(rQrZInputSourceZhasattrrzZsetCharacterStreamZ
setByteStreamrZsetSystemIdZgetCharacterStreamZ
getByteStreamZgetSystemId�osZpathZdirnameZnormpathZjoinZisfileZopen�urllibrnZurljoinZrequestZurlopen)roZbaseZfZsysidZbaseheadZ
sysidfilenamerrr	�prepare_input_sourceSs*




r})ry)r{Zurllib.parser|Zurllib.requestr)r*ryrrr
rrrr,r0r-rYrXr}rrrr	Z<module>s)so