add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�Wc-�csv�	ddlmZddlmZmZmZ	m
ZmZ
ddlmZmZmZmZddlmZmZmZddlmZmZm Z!ddl"m#Z$ddl%m&Z'ddl(m)Z*dd	l+m,Z-m.Z/dd
l0m0Z1ddl"Z2ddl3Z3	ddl4m5Z4gd
�Z8ded�zed�zZ9ed�Z:ded�zZ;dZ<de<zZ=dZ>Gd�de3j~�Z?Gd�de?�Z@e?�ZAeAj�ZBeAj�ZCeAj�ZDeAj�ZEeAj�ZFeAj�ZGeAj�ZHeAj�ZIeAj�ZJeAj�ZKeAj�ZLeAj�ZMeAj�ZNeAj�ZOeAj�ZPeAj�ZQeAj�ZReAj�ZSeAj�ZTeAj�ZUeAj�ZVeAj�ZWeAj�ZXeAj�ZYd�ZZd!d�Z[e\e2d�re2j�eAj���e^d kr
e[�dSdS#e6$r
ddl7m5Z4Y���wxYw)"�)�warn)�log�exp�pi�e�ceil)�sqrt�acos�cos�sin)�tau�floor�isfinite)�lgamma�fabs�log2)�urandom)�Sequence)�index)�
accumulate�repeat)�bisectN)�sha512)�Random�SystemRandom�betavariate�binomialvariate�choice�choices�expovariate�gammavariate�gauss�getrandbits�getstate�lognormvariate�
normalvariate�
paretovariate�	randbytes�randint�random�	randrange�sample�seed�setstate�shuffle�
triangular�uniform�vonmisesvariate�weibullvariate�g��@�@��?�@i5��cs��eZdZ	dZd'd�Zd(�fd�	Z�fd�Z�fd�Zd�Zd	�Z	d
�Z
d�Zd�Zd
e
zfd�ZeZd�Zdefd�Zd�Zd�Zd�Zdd�d�Zd'dd
d�d�Zd�Zd)d�Zd*d�Zd*d�Zd�Zd�Zd �Zd!�Zd"�Z d+d$�Z!d%�Z"d&�Z#�xZ$S),r�Ncs:�	|j|�d|_dS�N)r+�
gauss_next)�self�x�  �/usr/lib64/python3.12/random.py�__init__zRandom.__init__zs!��	�
	
�	�	�!��������r7c	s��	|dkr�t|ttf�r~t|t�r|jd�n|}|rt	|d�dznd}tt|�D]
}d|z|zdz}�|t
|�z}|dkrdn|}n�|d	kryt|tttf�rYt|t�r|j�}tj|t|�j�z�}nEt|td�tttttf�s
td
��t!�j#|�d|_dS)Nr8zlatin-1r�iCBl���������i����r7zOThe only supported seed types are: None,
int, float, str, bytes, and bytearray.)�
isinstanceZstrZbytesZdecodeZordZmap�lenZ	bytearrayZencode�int�
from_bytes�_sha512ZdigestZtypeZfloat�	TypeError�superr+r;)r<�a�versionr=�c�	__class__�     �r?r+zRandom.seed�sK���	�"�a�<�<�J�q�3��,�7�7�'1�!�U�';�';�����#�#��A�"#�!��A�a�D�	�Q����A���a�[�
=�
=����k�Q�&�*<�<���
��Q��K�A��2�g�g���1�A�A�
��\�\�j��S�%��,C�D�D��!�S�!�!��H�H�J�����q�7�1�:�#4�#4�#6�6�7�A�A��A��T�
�C���U�I�N�O�O��E�F�
F�	����Q�������rAcsj��	|jt�j�|jfSr:)�VERSIONrJr"r;)r<rNs �r?r"zRandom.getstate�s&���G��|�|�U�W�-�-�/����@�@rAcsl��	|d}|dkr)|\}}|_t�j|�dS|dkr?|\}}|_	td�|D��}t�j|�dSt	d|�d|j����#t$r
}t
|�d}~wwxYw)Nrr9r7c3s"K�|]	}|dz���dS)lN�)�.0r=r>r?z	<genexpr>z"Random.setstate.<locals>.<genexpr>�s"����%K�%K��a�7�m�m�m�m�m�%K�%KrAzstate with version z( passed to Random.setstate() of version )r;rJr,Ztuple�
ValueErrorrIrP)r<�staterLZ
internalstaterrNrOr?r,zRandom.setstate�s����H���(���a�<�<�6;�3�G�]�D�O��G���]�+�+�+�+�
��\�\�6;�3�G�]�D�O�

'� %�%K�%K�]�%K�%K� K�
�
�G���]�+�+�+�+��*�%�g�g�t�|�|�|�5�6�
6��	�
'�
'�
'��Q�&�����
'���s�B�
B3�&B.�.B3cs$�|j�Sr:)r"�r<� r?�__getstate__zRandom.__getstate__�s���}�}��rAcs*�|j|�dSr:)r,)r<rTr>r?�__setstate__zRandom.__setstate__�s���
�
�e����rAcs>�|jd|j�fS)NrQ)rNr"rUrVr?�
__reduce__zRandom.__reduce__�s���~�~�r�4�=�=�?�2�2rAcs��	|jD]W}d|jvrdSd|jvr|j|_dSd|jvs�E|j|_dSdS)N�
_randbelowr!r()Z__mro__Z__dict__�_randbelow_with_getrandbitsrZ�_randbelow_without_getrandbits)ZclsZkwargsrM�   r?�__init_subclass__zRandom.__init_subclass__�s���	����		�		�A��q�z�z�)�)������
�
�*�*�!$�!@�!@�������1�:�:�%�%��!$�!C�!C������		�		rAcs��	|j}|j�}||�}||kr||�}||kr�|Sr:)r!Z
bit_length)r<�nr!�k�r�     r?r[z"Random._randbelow_with_getrandbits�sK��E��&�&��
�L�L�N���K��N���1�f�f���A��A��1�f�f���rAr8cs��	|j}||kr#td�t|�|z�S||z}||z
|z}|�}||kr|�}||kr�t||z�|zS)Nz�Underlying random() generator does not supply 
enough bits to choose from a population range this large.
To remove the range limitation, add a getrandbits() method.)r(�_warn�_floor)r<r_Zmaxsizer(ZremZlimitra�       r?r\z%Random._randbelow_without_getrandbits�s���	�
������<�<��N�
O�
O��&�&�(�Q�,�'�'���k���3��'�)���F�H���5�j�j����A��5�j�j���a�'�k�"�Q�&�&rAcsP�	|j|dz�j|d�S)N�Zlittle)r!Zto_bytes�r<r_r>r?r&zRandom.randbytess'��&�����A��&�/�/��8�<�<rAc	s�	t|�}|�;|tur
td��|dkr|j|�St	d��t|�}||z
}t|�}|dkr/|dkr||j|�zSt	d|�d|�d���|dkr||zdz
|z}n|dkr||zdz|z}n
t	d��|dkrt	d|�d|�d|�d���|||j|�zzS)	Nz Missing a non-None stop argumentrzempty range for randrange()r8zempty range in randrange(z, z)zzero step for randrange())�_index�_ONErIrZrS)	r<ZstartZstopZstepZistartZistopZwidthZistepr_s	         r?r)zRandom.randrangesI��	������<��4���� B�C�C���z�z����v�.�.��:�;�;��t��������t����A�:�:��q�y�y������ 6�6�6��I��I�I�$�I�I�I�J�J��1�9�9�����"�u�,�A�A�
�Q�Y�Y�����"�u�,�A�A��8�9�9���6�6��Q��Q�Q�$�Q�Q�$�Q�Q�Q�R�R������� 2�2�2�2rAcs0�	|j||dz�S�Nr8)r)�r<rK�br]r?r'zRandom.randintHs��	��~�~�a��1��%�%rAcsh�	|s
td��||jt|��S)Nz$Cannot choose from an empty sequence)Z
IndexErrorrZrE)r<Zseqr>r?rz
Random.choiceQs.��@��s��C�D�D��4�?�?�3�s�8�,�-�-rAcs��	|j}ttdt|���D]%}||dz�}||||c||<||<�'dSrj)rZZreversed�rangerE)r<r=�	randbelow�i�jrbr?r-zRandom.shuffleWsd��7��O�O�	��%��3�q�6�*�+�	$�	$�A��	�!�a�%� �A��1��q��t�J�A�a�D�!�A�$�$�	$�	$rA)�countscs�����	t�t�s
td��t��}|��t	t|���t��|kr
t
d���j�}t|t�s
td��|dkr
t
d��|jt|�|��}t����fd�|D�S|j}d|cxkr|kst
d��t
d��dg|z}d	}	|d
kr"|	dtt|dzd��zz
}	||	krHt	��}
t|�D]*}|||z
�}|
|||<|
||z
d
z
|
|<�,|St�}
|
j }t|�D]1}||�}||
vr||�}||
vr�||��|||<�3|S)NzAPopulation must be a sequence.  For dicts or sets, use sorted(d).z2The number of counts does not match the populationzCounts must be integersrz)Total of counts must be greater than zero)r`cs2��g|]}���|���SrQrQ)rR�sr�
cum_counts�
populations  ���r?�
<listcomp>z!Random.sample.<locals>.<listcomp>�s'���J�J�J�!�J�v�v�j�!�4�5�5�5�JrAz,Sample larger than population or is negativeiir2r9r8)rD�	_SequencerIrE�list�_accumulaterSZpoprFr*rm�_bisectrZ�_ceil�_logZsetZadd)r<rtr`rqr_�totalZ
selectionsrnZresultZsetsizeZpoolrorpZselectedZselected_addrrss `             @@r?r*z
Random.sample`s�����	�h�*�i�0�0��@�A�
A��
�O�����k�&�1�2�J��:��!�#�#� �!U�V�V��N�N�$�E��e�S�)�)�� 9�:�:���z�z� �!L�M�M����U�5�\�Q��7�J��F�J�J�J�J�J�J�z�J�J�J��O�O�	��A�{�{�{�{��{�{��K�L�L���K�L�L���!������q�5�5��q�E�$�q�1�u�a�.�1�1�1�G���<�<��
�#�D��1�X�
*�
*���I�a�!�e�$�� ��G��q�	��q�1�u�q�y�/��Q����
��u�H�#�<�<�L��1�X�
*�
*���I�a�L���8�m�m�!�	�!��A��8�m�m����Q���&�q�M��q�	�	��
rA)�cum_weightsr`csV�������	�
�	|j�	t�����C|�'t��dz
�����	fd�td|�D�S	t	t|���n|�
t
d��t���kr
td���ddz�
�
dkr
td��t�
�s
td��t��d	z
������	�
fd
�td|�D�S#t$r(t|t�s�|}t
d|���d�wxYw)N�csB��g|]}�����z���SrQrQ)rRrorr_rtr(s  ����r?ru�"Random.choices.<locals>.<listcomp>�s-���R�R�R�A�
�5�5����A��#6�7�7�7�RrAz4The number of choices must be a keyword argument: k=z2Cannot specify both weights and cumulative weightsz3The number of weights does not match the populationrCz*Total of weights must be greater than zerozTotal of weights must be finiter8c	sH��g|]}������zd����S)rrQ)rRrorr}�hirtr(r|s  ������r?rur�s@���+�+�+���6�6�+�v�v�x�%�/?��B�G�H�H�H�+rA)r(rErd�_repeatrwrxrIrDrFrS�	_isfinitery)r<rtZweightsr}r`rrr�r_r(r|s ` ` @@@@@@r?rzRandom.choices�s�����������	������
�O���������S���R�R�R�R�R�R�R���q�AQ�R�R�R�
�"�;�w�#7�8����
 ��P�Q�Q��{��q� � ��R�S�S��B��#�%���C�<�<��I�J�J������>�?�?���
��U��+�+�+�+�+�+�+�+�+� ��q�)�+�+�	+��%�
�
�
�!�'�3�/�/�����M��M�M����	
���s�C6�62D(cs8�	|||z
|j�zzSr:�r(rkr]r?r/zRandom.uniform�s��R��A��E�T�[�[�]�*�*�*rAr~r5cs��	|j�}	|�dn
||z
||z
z}||krd|z
}d|z
}||}}|||z
t||z�zzS#t$r|cYSwxYw)N��?r5)r(ZZeroDivisionError�_sqrt)r<�low�highZmode�urMs      r?r.zRandom.triangular�s���	�
�K�K�M��	��|���$��*����)D�A�
�q�5�5��a��A��a��A��c��C��d�S�j�E�!�a�%�L�0�0�0��
!�	�	�	��J�J�J�	���s�A�A�Acs��	|j}	|�}d|�z
}t|dz
z|z}||zdz}|t|�krn�?|||zzS)NTr5r�r4)r(�
NV_MAGICCONSTr{)r<�mu�sigmar(�u1�u2�zZzzs        r?r$zRandom.normalvariate�sr��	���������B��v�v�x��B���c��*�R�/�A��Q����B��d�2�h�Y����
��A��I�~�rAcs�	|j}|j}d|_|�Y|�tz}tdt	d|�z
�z�}t|�|z}t
|�|z|_|||zzS)Ng�r5)r(r;�TWOPIr�r{�_cos�_sin)r<r�r�r(r�Zx2piZg2radrer?r zRandom.gausss}��	�4�����O�O������9��6�8�e�#�D��$��c�F�F�H�n�!5�5�6�E��T�
�U�"�A�"�4�j�5�0�D�O��A��I�~�rAcs@�	t|j||��Sr:)�_expr$)r<r�r�r]r?r#zRandom.lognormvariate:s!��	��D�&�&�r�5�1�2�2rAcsJ�	td|j�z
�|zS�Nr5)r{r()r<Zlambdr>r?rzRandom.expovariateDs'��	��S�4�;�;�=�(�)�)�E�1�1rAcs��	|j}|dkrt|�zSd|z}|td||zz�z}	|�}tt|z�}|||zz}|�}	|	d||zz
ks|	d|z
t|�zkrn�Rd|z}
|
|zd|
|zzz}|�}|dkr|t
|�ztz}
|
S|t
|�z
tz}
|
S)Ng�����ư>r�r5)r(r�r�r��_pir��_acos)r<r�Zkappar(rrrar�r�Zdr�ZqZfZu3Zthetas              r?r0zRandom.vonmisesvariateUs��	������D�=�=��6�6�8�#�#��%�K��
��c�A��E�k�"�"������B��S�2�X��A��Q��U��A����B��C�!�a�%�K���2�#��'�T�!�W�)<�#<�#<���
�!�G��
��U�s�Q��U�{�#��
�V�X��
��8�8��%��(�]�e�+�E����%��(�]�e�+�E��rAcs��	|dks|dkr
td��|j}|dkr�td|zdz
�}|tz
}||z}	|�}d|cxkrdksn�d|�z
}t	|d|z
z�|z}	|t|	�z}
||z|z}|||	zz|
z
}|tzd|zz
dks|t	|�kr|
|zS��|dkrt	d|�z
�|zS	|�}
t|ztz}||
z}|dkr	|d|zz}
nt	||z
|z�}
|�}|dkr||
|dz
zkr	|
|zS|t|
�kr	|
|zS�{)	Nr~z*gammavariate: alpha and beta must be > 0.0r5r3TgH�����z>g�P����?r6)rSr(r��LOG4r{r��
SG_MAGICCONST�_e)r<�alpha�betar(ZainvZbbbZcccr�r��vr=r�rar�rl�ps                r?rzRandom.gammavariates���
	��C�<�<�4�3�;�;��I�J�J������3�;�;���u��s�*�+�D��$�,�C��$�,�C���V�X���b�,�,�,�,�9�,�,�,�,���6�6�8�^����s�R�x��)�D�0���D��G�O����G�b�L���#��'�M�A�%���}�$�s�Q�w�.�#�5�5��d�1�g����t�8�O���c�\�\���v�v�x��(�(�4�/�/�
��F�H���%�Z�2�%����E����8�8��c�E�k�*�A�A��q�1�u��o�.�.�A��V�X���s�7�7��Q�5�3�;�/�/�/���t�8�O��4���8�^�^���t�8�O�rAcsd�	|j|d�}|r|||j|d�zzSdS)Nr5r~)r)r<r�r��y�    r?rzRandom.betavariate�sB��	�*
���e�S�)���1���D�-�-�d�C�8�8�9�9��srAr�csJ�	|dkr
td��|dks|dkr|dkrdS|dkr|Std��|j}|dkrt|�|k�S|dkr||j|d|z
�z
S||zdkrNdx}}t	d|z
�}|s|S	|tt	|��|z�dzz
}||kr|S|dz
}�5d
}t
||zd|z
z�}dd|zz}	d
d|	zzd|zz}
||zdz}dd|	zz
}	|�}|dz}dt|�z
}
td|
z|
z|	z|z|z�}|dks||kr�G|�}|
dkr||kr|S|sWdd|	zz|z}t|d|z
z�}t|dz|z�}t|dz�t||z
dz�z}d	}||
|
|
zz|	zzz}t|�t|dz�z
t||z
dz�z
|z
zzkr|S��	)Nrzn must be non-negativer~r5z&p must be in the range 0.0 <= p <= 1.0r8r�g$@TFgffffff�?g=
ףp=@gE���JY��ga��+e�?�{�G�z�?gq=
ףp�?g������@r3g�Q���?g�p=
ף@gffffff@)
rSr(rhr�_log2rdr��_fabsr{�_lgamma)r<r_r�r(r=r�rMZsetup_completeZspqrlrKZvrr�Zusr`r�r�ZlpqZmZhs                    r?rzRandom.binomialvariate�s���		�
�q�5�5��5�6�6���8�8�q�C�x�x��C�x�x��q��C�x�x����E�F�F�����
��6�6��&�&�(�Q�,�'�'�
�s�7�7��t�+�+�A�s�Q�w�7�7�7��q�5�4�<�<��I�A���c�A�g��A��1�����V�E�&�&�(�O�a�/�0�1�4�4���q�5�5��H��Q���	����A��E�S�1�W�%�&���4�#�:����f�q�j� �4�!�8�+��
��E�C�K��
�C�!�G�^������A�
��H�A��u�Q�x��B���a��"��q�(�A�-��1�2�A��1�u�u��A�������A��T�z�z�a�2�g�g���
"�>���a���3�.���1��a��=�)���A��E�Q�;�'���A��E�N�W�Q��U�Q�Y�%7�7��!%��
��!�r�B�w�-�!�+�,�,�A��A�w�!�g�a�!�e�n�,�w�q�1�u�q�y�/A�A�Q��U�c�M�Q�Q�Q���5rAcs<�	d|j�z
}|d|zzS)Nr5g�r�)r<r�r�r]r?r%zRandom.paretovariate0s&��A�
�$�+�+�-����T�E�\�"�"rAcsZ�	d|j�z
}|t|�d|zzzSr�)r(r{)r<r�r�r�r�r?r1zRandom.weibullvariate7s3��	�
�$�+�+�-�����a���c�D�j�1�1�1rAr:)Nr7)r~r5N�r~r5)r8r�)%�__name__�
__module__�__qualname__rPr@r+r"r,rWrXrYr^r[�BPFr\rZr&rir)r'rr-r*rr/r.r$r r#rr0rrrr%r1Z
__classcell__)rNs@r?rrjst���������G�����$�$�$�$�$�$�LA�A�A�A�A�6�6�6�6�6�B������3�3�3����(���9:�3��'�'�'�'�&-�J�=�=�=�%)�t�'3�'3�'3�'3�R&�&�&�.�.�.�$�$�$�/3�]�]�]�]�]�~#+�t�q�#+�#+�#+�#+�#+�P+�+�+�1�1�1�1�(����*$�$�$�$�L3�3�3�2�2�2�"(�(�(�T?�?�?�B���8Q�Q�Q�Q�h#�#�#�	2�	2�	2�	2�	2�	2�	2rArcs6�eZdZ	d�Zd�Zd�Zd�Zd�ZexZZ	dS)rcs^�	tjtd��dz	tzS)NrBr9)rFrG�_urandom�	RECIP_BPFrUrVr?r(zSystemRandom.randomPs"��A����x��{�+�q�0�I�=�=rAcs��	|dkr
td��|dzdz}tjt|��}||dz|z
z	S)Nrz#number of bits must be non-negativerBrf)rSrFrGr�)r<r`Znumbytesr=r�r?r!zSystemRandom.getrandbitsTsN��H��q�5�5��B�C�C���E�a�<���N�N�8�H�-�.���X��\�A�%�&�&rAcs�	t|�Sr:)r�rgr>r?r&zSystemRandom.randbytes\s��&���{�rAcs�	dSr:rQ�r<�argsZkwdsr]r?r+zSystemRandom.seedbs
��F��trAcs�	td��)Nz*System entropy source does not have state.)ZNotImplementedErrorr�r]r?�_notimplementedzSystemRandom._notimplementedfs��K�!�"N�O�OrAN)
r�r�r�r(r!r&r+r�r"r,rQrAr?rrGsm�������>�>�>�'�'�'�������P�P�P�*�)�H�x�x�xrArcsD���ddlm}m}ddlm}|�}��fd�td|�D�}|�}||�}	|||	�}
t
|�}t|�}t||z
d�d|�d�j�����td|	|
||fz�dS)	Nr)�stdev�fmean)�perf_countercs��g|]}�����	SrQrQ)rRror��funcs  ��r?ruz#_test_generator.<locals>.<listcomp>�s���2�2�2�A�D�D�$�K�K�K�2rAz.3fz sec, z times z"avg %g, stddev %g, min %g, max %g
)
Z
statisticsr�r�Ztimer�r�ZminZmaxZprintr�)
r_r�r�r�Zmeanr�Zt0ZdataZt1Zxbarr�r�r�s
 ``          r?�_test_generatorr��s�����/�/�/�/�/�/�/�/�!�!�!�!�!�!�	���B�2�2�2�2�2���q�!1�2�2�D�	���B��4��:�D��E�$���E�

�d�)�C��t�9�D�	�R�"�W�
A�
A�
A��
A�
A�$�-�-�
A��
A�
A�B�B�	�
/�4���T�2J�
J�K�K�K�KrA�'cs��t|td�t|td�t|td�t|td�t|t
d�t|t
d�t|td�t|td�t|td�t|td�t|td	�t|td
�t|td�t|td�t|td
�t|td�t|td�t|td�dS)NrQr�)ig333333�?)idg�?)r�r5)皙�����?r5)r�r3)r�r5)g�������?r5)r5r5)r3r5)g4@r5)gi@r5)�@r�)r~r5gUUUUUU�?)
r�r(r$r#r0rrr rr.)ZNrVr?�_testr��s���A�v�r�"�"��A�}�j�1�1��A�~�z�2�2��A��
�3�3��A��
�3�3��A���4�4��A�|�[�1�1��A�|�Z�0�0��A�|�Z�0�0��A�|�Z�0�0��A�|�Z�0�0��A�|�Z�0�0��A�|�Z�0�0��A�|�[�1�1��A�|�\�2�2��A�u�j�)�)��A�{�J�/�/��A�z�#8�9�9�9�9rAZfork)Zafter_in_childZ__main__)r�)_ZwarningsrrcZmathrr{rr�rr�rr�rrzrr�rr�r	r�r
r�rr�rrdr
r�rr�rr�rr�Zosrr�Z_collections_abcrrvZoperatorrrhZ	itertoolsrrxrr�rryZ_osZ_randomrHrZImportErrorZhashlibZ__all__r�r�r�r�r�rirrZ_instr+r(r/r.r'rr)r*r-rr$r#rr0rr rrr%r1r"r,r!r&r�r�ZhasattrZregister_at_forkr�rQrAr?�<module>r�s���*�`#�"�"�"�"�"�L�L�L�L�L�L�L�L�L�L�L�L�L�L�G�G�G�G�G�G�G�G�G�G�G�G�E�E�E�E�E�E�E�E�E�E�@�@�@�@�@�@�@�@�@�@�"�"�"�"�"�"�2�2�2�2�2�2�$�$�$�$�$�$�B�B�B�B�B�B�B�B�$�$�$�$�$�$���������*�)�)�)�)�)�)�
����:�D�D��J����s��+�
��t�C�y���d�d�3�i��
���
�#��I�	���V2�V2�V2�V2�V2�W�^�^�V2�V2�z"*�"*�"*�"*�"*�6�"*�"*�X	�����z�z��	����
�-�-��
�
�
�
�
�-�-��	�����O�O�	�	����
�-�-��
�-�-���#�#�
��%�%�������'�'���!�!��
���������'�'���#�#�
��%�%���>�>���>�>�������O�O�	�L�L�L�":�:�:�:�0�7�3�����C����
�
�3�3�3��z���	�E�G�G�G�G����{�*�*�*�)�)�)�)�)�)�)�)�*���s�H)�)H8�7H8