add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
B

�/g^�6c@s�ddlZddlZddlZddlZdddgZGdd�de�ZdZdZdZ	dZ
d	ZGd
d�d�Zdd
�Z
Gdd�d�ZGdd�d�ZGdd�d�ZGdd�d�Zdd�ZGdd�d�ZGdd�d�ZGdd�d�Zdd�ZdS)�N�binhex�hexbin�Errorc@seZdZdS)rN)�__name__�
__module__�__qualname__�rr�/usr/lib64/python3.7/binhex.pyr��i�i@s�c@seZdZdd�ZdS)�FInfocCsd|_d|_d|_dS)Nz????r)�Type�Creator�Flags��selfrrr�__init__0szFInfo.__init__N)rrrrrrrrr/r	rc	Cstt�}t�|d��2}|�d�}d|kr,d|_|�dd�|��}WdQRXtj�	|�\}}|�
ddd�}|||dfS)	N�rbirZTEXT�z:z-r
)r�io�open�readrZseekZtell�osZpathZsplitZreplace)�name�finfoZfp�dataZdsizeZdirZfilerrr�getfileinfo5s
rc@�,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�openrsrccG�dS�Nr�rZargsrrrrC�zopenrsrc.__init__cGsdS�N�rr rrrrFr!z
openrsrc.readcGrrrr rrr�writeIr!zopenrsrc.writecCrrrrrrr�closeLr!zopenrsrc.closeN)rrrrrr$r%rrrrrBsrc@r)
�_HqxcoderenginecCs ||_d|_d|_td|_dS)Nr#r
)�ofpr�hqxdata�LINELEN�linelen�rr'rrrrR�z_Hqxcoderengine.__init__cCsh|j||_t|j�}|dd}|jd|�}|j|d�|_|sHdS|jt�|�|_|�d�dS)N�r)r�lenr(�binascii�b2a_hqx�_flush)rrZdatalenZtodorrrr$Xs
z_Hqxcoderengine.writecCsvd}xF|t|j�|jkrJ||j}|j�|j||�d�t|_|}qW|j|d�|_|rr|j�|jd�dS)Nrs
s:
)r.r(r*r'r$r))rZforceZfirstZlastrrrr1cs
z_Hqxcoderengine._flushcCs6|jr|jt�|j�|_|�d�|j��|`dS)Nr
)rr(r/r0r1r'r%rrrrr%ns


z_Hqxcoderengine.closeN)rrrrr$r1r%rrrrr&Osr&c@�$eZdZdd�Zdd�Zdd�ZdS)�_RlecoderenginecC�||_d|_dSr")r'rr+rrrrx�z_Rlecoderengine.__init__cCs@|j||_t|j�tkrdSt�|j�}|j�|�d|_dSr")rr.�REASONABLY_LARGEr/�rlecode_hqxr'r$)rr�rledatarrrr$|sz_Rlecoderengine.writecCs0|jrt�|j�}|j�|�|j��|`dSr)rr/r7r'r$r%)rr8rrrr%�s

z_Rlecoderengine.closeN)rrrrr$r%rrrrr3usr3c@�LeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�BinHexc
Cs�|\}}}}d}t|t�r.|}t�|d�}d}yR|�d�t|�}	t|	�|_d|_|dkr`t	�}||_
||_|�||�t
|_Wn|r�|���YnXdS)NF�wbTs0(This file must be converted with BinHex 4.0)

:r)�
isinstance�strrrr$r&r3r'�crcr�dlen�rlen�
_writeinfo�_DID_HEADER�stater%)
rZname_finfo_dlen_rlenr'rrr?r@Zclose_on_errorZofnameZhqxerrrrr�s*



zBinHex.__init__cCs�t|�}|dkrtd��t|g�|�d�d}|j|j}}t|t�rR|�d�}t|t�rf|�d�}||}t�	d|j
�}t�	d|j|j�}	||||	}
|�
|
�|��dS)Ni?zFilename too longzlatin-1��>hz>ii)r.rZbytesZencoderr
r<r=�struct�packrr?r@�_write�	_writecrc)rrrZnl�dZtpZcrZd2Zd3Zd4ZinforrrrA�s




zBinHex._writeinfocCs t�||j�|_|j�|�dSr)r/�crc_hqxr>r'r$�rrrrrrH�sz
BinHex._writecCs4|jdkrd}nd}|j�t�||j��d|_dS)NrrEz>H)r>r'r$rFrG)rZfmtrrrrI�s

zBinHex._writecrccCs0|jtkrtd��|jt|�|_|�|�dS)NzWriting data at the wrong time)rCrBrr?r.rHrLrrrr$�s
zBinHex.writecCs,|jdkrtd|jf��|��t|_dS)NrzIncorrect data size, diff=%r)r?rr@rI�	_DID_DATArCrrrr�
close_data�s
zBinHex.close_datacCsB|jtkr|��|jtkr$td��|jt|�|_|�|�dS)Nz'Writing resource data at the wrong time)rCrMrNrr@r.rHrLrrr�
write_rsrc�s

zBinHex.write_rsrccCsx|jdkrdSzJ|jtkr"|��|jtkr4td��|jdkrNtd|jf��|��Wdd|_|j}|`|��XdS)NzClose at the wrong timerz$Incorrect resource-datasize, diff=%r)rCrMrNrr@rIr'r%r+rrrr%�s



zBinHex.closeN)rrrrrArHrIr$rNrOr%rrrrr:�s
r:c	Cs�t|�}t||�}t�|d��.}x|�d�}|s2P|�|�q"W|��WdQRXt|d�}x|�d�}|snP|�|�q^W|�	�|�	�dS)Nr��)
rr:rrrr$rNrrOr%)�inp�outrr'�ifprJrrrr�s"



c@r2)�_HqxdecoderenginecCr4)Nr)rS�eof�rrSrrrrr5z_Hqxdecoderengine.__init__cCs�d}|}x�|dkr�|jr|S|ddd}|j�|�}xRyt�|�\}|_PWntjk
rfYnX|j�d�}|s�td��||}q:W||}|t|�}|s
|js
td��q
W|S)Nr#rrr-�r
zPremature EOF on binhex file)rUrSrr/Za2b_hqxZ
Incompleterr.)rZtotalwtdZdecdata�wtdrZ
decdatacurZnewdatarrrrs,

z_Hqxdecoderengine.readcC�|j��dSr�rSr%rrrrr%%r!z_Hqxdecoderengine.closeN)rrrrrr%rrrrrT�s rTc@r)
�_RledecoderenginecCs||_d|_d|_d|_dS)Nr#r)rS�
pre_buffer�post_bufferrUrVrrrr+r,z_Rledecoderengine.__init__cCsD|t|j�kr"|�|t|j��|jd|�}|j|d�|_|Sr)r.r]�_fill)rrX�rvrrrr1s
z_Rledecoderengine.readcCs�|j|j�|d�|_|jjr>|jt�|j�|_d|_dSt|j�}|jdd�tdtkrl|d}nX|jdd�tkr�|d}n<|jdd�tdkr�|d}n|jdd�tkr�n|d	}|jt�|jd|��|_|j|d�|_dS)
NrWr#i����rDr-i����ri����r
)	r\rSrrUr]r/Z
rledecode_hqxr.�RUNCHAR)rrXZmarkrrrr^8s&



z_Rledecoderengine._fillcCrYrrZrrrrr%[r!z_Rledecoderengine.closeN)rrrrrr^r%rrrrr[(s#r[c@r9)�HexBincCsjt|t�rt�|d�}x.|�d�}|s.td��|dkr8q|dkrPqWt|�}t|�|_d|_	|�
�dS)Nrr
zNo binhex data founds
s:r)r<r=rrrrrTr[rSr>�_readheader)rrSZchZhqxifprrrr_s


zHexBin.__init__cCs |j�|�}t�||j�|_|Sr)rSrr/rKr>)rr.rrrr�_readuszHexBin._readcCsNt�d|j�d��dd@}|jd@|_||jkrDtd|j|f��d|_dS)NrErri��zCRC error, computed %x, read %x)rF�unpackrSrr>r)rZfilecrcrrr�	_checkcrczs
zHexBin._checkcrccCs�|�d�}|�t|��}|�d�}|��|dd�}|dd�}t�d|dd��d}t�d|dd	��d|_t�d|d	d��d|_||_t�|_||j_	||j_
||j_t|_
dS)
Nr
iii	rEirz>li)rcZordrerFrdr?r@�FNamerr
rrrBrC)rr.ZfnameZrestZtypeZcreatorZflagsrrrrb�s

zHexBin._readheadercGsn|jtkrtd��|r,|d}t||j�}n|j}d}x&t|�|kr\||�|t|��}q8W|j||_|S)NzRead data at wrong timerr#)rCrBr�minr?r.rc)r�nr_rrrr�s
zHexBin.readcCs6|jtkrtd��|jr$|�|j�}|��t|_dS)Nzclose_data at wrong time)rCrBrr?rcrerM�rZdummyrrrrN�s
zHexBin.close_datacGsZ|jtkr|��|jtkr$td��|r>|d}t||j�}n|j}|j||_|�|�S)Nz Read resource data at wrong timer)rCrBrNrMrrgr@rc)rrhrrr�	read_rsrc�s

zHexBin.read_rsrccCsD|jdkrdSz|jr"|�|j�}|��Wdd|_|j��XdSr)rCr@rjrerSr%rirrrr%�s
zHexBin.closeN)rrrrrcrerbrrNrjr%rrrrra^s

rac	Cs�t|�}|j}|s|j}t�|d��&}x|�d�}|s8P|�|�q(WWdQRX|��|�d�}|r�t	|d�}|�|�x|�d�}|s�P|�|�q|W|�
�|�
�dS)Nr;rP)rarrfrrrr$rNrjrr%)rQrRrSrr'rJrrrr�s,




)rrrFr/Z__all__Z	ExceptionrrBrMr6r)r`rrrr&r3r:rrTr[rarrrrrZ<module>s*


&^*6h