add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
U

�AT^�Gc@s�ddlmZddlZedd�ZdZdZdZdZd	Zd
Z	dZ
dZd
ZdZ
dZdZdZdZeeeee	egZGdd�de�Zdd�Zdd�ZGdd�d�ZGdd�d�Zd!dd�Zd"dd �ZdS)#�)�
namedtupleN�
_sunau_paramsz7nchannels sampwidth framerate nframes comptype compnameidns.����ii�i��iil��c@seZdZdS)�ErrorN)�__name__�
__module__�__qualname__�rr�/usr/lib64/python3.8/sunau.pyr
�sr
cCs8d}td�D]&}|�d�}|s"t�|dt|�}q|S)Nrrr�)�range�readZEOFErrorZord)�file�x�iZbyterrr�	_read_u32�s
rcCsFg}td�D]&}t|d�\}}|�dt|��|}q|�t|��dS)Nrrr)rZdivmodZinsert�int�write�bytes)rr�datarZdZmrrr�
_write_u32�src@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)S)*�Au_readcC�@t|�td�kr,ddl}|�|d�}d|_nd|_|�|�dS)N�r�rbTF��type�builtins�open�_opened�initfp��self�fr"rrr�__init__��zAu_read.__init__cCs|jr|��dS�N��_file�close�r'rrr�__del__�szAu_read.__del__cC�|Sr+rr/rrr�	__enter__��zAu_read.__enter__cG�|��dSr+�r.�r'Zargsrrr�__exit__�r3zAu_read.__exit__c	Cs�||_d|_tt|��}|tkr(td��tt|��|_|jdkrHtd��|jdkrZtd��t|�|_|jtkrzt|j�|_tt|��|_	|j	t
kr�td��|j	ttfkr�d|_
d	|_nj|j	tkr�d	|_|_
nR|j	tkr�d|_|_
n:|j	tkr�d
|_|_
n"|j	tk�rd|_|_
ntd��tt|��|_tt|��|_|j�sLtd
��|j|j|_|jdk�r�|�|jd�|_|j�d�\|_}}nd|_z|��|_Wn ttfk
�r�d|_YnXdS)Nrzbad magic numberrzheader size too smallidzheader size ridiculously largezencoding not (yet) supportedrrrrzunknown encodingzbad # of channels��)r-�	_soundposrr�AUDIO_FILE_MAGICr
Z	_hdr_size�
_data_size�AUDIO_UNKNOWN_SIZE�	_encoding�_simple_encodings�AUDIO_FILE_ENCODING_MULAW_8�AUDIO_FILE_ENCODING_ALAW_8�
_sampwidth�
_framesize�AUDIO_FILE_ENCODING_LINEAR_8�AUDIO_FILE_ENCODING_LINEAR_16�AUDIO_FILE_ENCODING_LINEAR_24�AUDIO_FILE_ENCODING_LINEAR_32�
_framerate�
_nchannelsr�_infoZ	partition�tell�	_data_pos�AttributeError�OSError)r'rZmagicZ_rrrr%�sV




�


zAu_read.initfpcC�|jSr+)r-r/rrr�getfp�r3z
Au_read.getfpcCrOr+)rIr/rrr�getnchannels�r3zAu_read.getnchannelscCrOr+)rBr/rrr�getsampwidth�r3zAu_read.getsampwidthcCrOr+)rHr/rrr�getframerate�r3zAu_read.getframeratecCs(|jtkrtS|jtkr$|j|jSdS�Nr)r<r=r>r?rCr/rrr�
getnframes�s


zAu_read.getnframescC�$|jtkrdS|jtkrdSdSdS)N�ULAW�ALAW�NONE�r>r@rAr/rrr�getcomptype��


zAu_read.getcomptypecCrV)N�CCITT G.711 u-law�CCITT G.711 A-law�not compressedrZr/rrr�getcompname�r\zAu_read.getcompnamecC�*t|��|��|��|��|��|���Sr+�rrQrRrSrUr[r`r/rrr�	getparams��zAu_read.getparamscCsdSr+rr/rrr�
getmarkersr3zAu_read.getmarkerscCstd��dS)Nzno marks)r
)r'Zidrrr�getmarkr3zAu_read.getmarkcCsp|jtkrl|tkr|j��}n|j�||j�}|jt|�|j7_|jtkrhddl	}|�
||j�}|SdSrT)r>r?r=r-rrCr:�lenr@�audioopZulaw2linrB)r'�nframesrrhrrr�
readframess

zAu_read.readframescCs*|jdkrtd��|j�|j�d|_dS)N�cannot seekr)rLrNr-�seekr:r/rrr�rewinds
zAu_read.rewindcCrOr+)r:r/rrrrK!r3zAu_read.tellcCsP|dks||��krtd��|jdkr.td��|j�|j||j�||_dS)Nrzposition not in rangerk)rUr
rLrNr-rlrCr:)r'Zposrrr�setpos$s
zAu_read.setposcCs"|j}|rd|_|jr|��dSr+)r-r$r.�r'rrrrr.,s
z
Au_read.closeN)rrr
r)r0r2r7r%rPrQrRrSrUr[r`rcrerfrjrmrKrnr.rrrrr�s(	.
rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3S)4�Au_writecCr)Nrr�wbTFr r&rrrr)5r*zAu_write.__init__cCs|jr|��d|_dSr+r,r/rrrr0>�zAu_write.__del__cCr1r+rr/rrrr2Cr3zAu_write.__enter__cGr4r+r5r6rrrr7Fr3zAu_write.__exit__cCsF||_d|_d|_d|_d|_t|_d|_d|_d|_	d|_
d|_dS)Nrr9rW)r-rHrIrBrCr=�_nframes�_nframeswritten�_datawritten�_datalengthrJ�	_comptyperorrrr%IszAu_write.initfpcC�(|jrtd��|dkrtd��||_dS)N�0cannot change parameters after starting to write)rrrz"only 1, 2, or 4 channels supported)rtr
rI)r'�	nchannelsrrr�setnchannelsV�
zAu_write.setnchannelscC�|jstd��|jS)Nznumber of channels not set)rIr
r/rrrrQ]rrzAu_write.getnchannelscCrx)Nry)rrrrzbad sample width)rtr
rB)r'�	sampwidthrrr�setsampwidthbr|zAu_write.setsampwidthcCs|jstd��|jS)N�sample width not specified)rHr
rBr/rrrrRirrzAu_write.getsampwidthcCs|jrtd��||_dS)Nry)rtr
rH)r'�	frameraterrr�setframeratenrrzAu_write.setframeratecCr})Nzframe rate not set)rHr
r/rrrrSsrrzAu_write.getframeratecCs(|jrtd��|dkrtd��||_dS)Nryrz# of frames cannot be negative)rtr
rs)r'rirrr�
setnframesxr|zAu_write.setnframescCrOr+�rtr/rrrrUr3zAu_write.getnframescCs|dkr||_ntd��dS)N)rYrWzunknown compression type)rwr
)r'r!Znamerrr�setcomptype�szAu_write.setcomptypecCrOr+�rwr/rrrr[�r3zAu_write.getcomptypecCs$|jdkrdS|jdkrdSdSdS)NrWr]rXr^r_r�r/rrrr`�r\zAu_write.getcompnamecCsH|\}}}}}}|�|�|�|�|�|�|�|�|�||�dSr+)r{rr�r�r�)r'Zparamsrzr~r�riZcomptypeZcompnamerrr�	setparams�s



zAu_write.setparamscCrar+rbr/rrrrc�rdzAu_write.getparamscCrOr+r�r/rrrrK�r3z
Au_write.tellcCs~t|ttf�st|��d�}|��|jdkrDddl}|�||j	�}t
|�|j}|j�
|�|j||_|jt
|�|_dS)NZBrWr)Z
isinstancerZ	bytearrayZ
memoryviewZcast�_ensure_header_writtenrwrhZlin2ulawrBrgrCr-rrtru)r'rrhrirrr�writeframesraw�s
zAu_write.writeframesrawcCs.|�|�|j|jks"|j|jkr*|��dSr+)r�rtrsrvru�_patchheader)r'rrrr�writeframes�s


�zAu_write.writeframescCs^|jrZz6|��|j|jks(|j|jkr0|��|j�	�W5|j}d|_|jrX|��XdSr+)
r-r$r.r�rtrsrvrur�Zflushrorrrr.�s
�zAu_write.closecCs<|js8|jstd��|js"td��|js0td��|��dS)Nz# of channels not specifiedr�zframe rate not specified)rtrIr
rBrH�
_write_headerr/rrrr��szAu_write._ensure_header_writtenc	Cs�|jdkrl|jdkr t}d|_q�|jdkr6t}d|_q�|jdkrLt}d|_q�|jdkrbt}d|_q�td��n|jdkr�t}d|_ntd��|j|j	|_t
|jt�dt
|j�}|d	d
@}t
|j|�|jtkr�t}n|j|j}z|j��|_Wn ttfk
�rd|_YnXt
|j|�||_t
|j|�t
|j|j�t
|j|j	�|j�|j�|j�d|t
|j�d�dS)
NrYrrrrzinternal errorrWr	ri����r8r)rwrBrDrCrErFrGr
r@rIrr-r;rgrJrsr=rK�_form_length_posrMrNrvrHr)r'ZencodingZheader_sizeZlengthrrrr��sJ







zAu_write._write_headercCsH|jdkrtd��|j�|j�t|j|j�|j|_|j�dd�dS)Nrkrr)r�rNr-rlrrurvr/rrrr��s
zAu_write._patchheaderN)rrr
r)r0r2r7r%r{rQrrRr�rSr�rUr�r[r`r�rcrKr�r�r.r�r�r�rrrrrp3s2	

*rpcCsJ|dkrt|d�r|j}nd}|dkr.t|�S|dkr>t|�Std��dS)N�moder)Zrr)Zwrqz$mode must be 'r', 'rb', 'w', or 'wb')Zhasattrr�rrpr
�r(r�rrrr#s
r#cCstjdtdd�t||d�S)NzDsunau.openfp is deprecated since Python 3.7. Use sunau.open instead.r)Z
stacklevel)r�)�warningsZwarnZDeprecationWarningr#r�rrr�openfps
�r�r+r+)Zcollectionsrr�rr;r@rDrErFrGZAUDIO_FILE_ENCODING_FLOATZAUDIO_FILE_ENCODING_DOUBLEZAUDIO_FILE_ENCODING_ADPCM_G721ZAUDIO_FILE_ENCODING_ADPCM_G722Z AUDIO_FILE_ENCODING_ADPCM_G723_3Z AUDIO_FILE_ENCODING_ADPCM_G723_5rAr=r?Z	Exceptionr
rrrrpr#r�rrrrZ<module>jsD��	Q