add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�Wc-���v�	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��@�@��?�@�5��c���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�Nc�:�	|j|�d|_dS�N)r-�
gauss_next)�self�xs  �/usr/lib64/python3.12/random.py�__init__zRandom.__init__zs!��	�
	
�	�	�!��������r:c	���	|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)Nr;zlatin-1r�iCBl��������������r:zOThe only supported seed types are: None,
int, float, str, bytes, and bytearray.)�
isinstance�str�bytes�decode�ord�map�len�	bytearray�encode�int�
from_bytes�_sha512�digest�type�float�	TypeError�superr-r@)rA�a�versionrB�c�	__class__s     �rCr-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�������rEc�j��	|jt�j�|jfSr?)�VERSIONrZr$r@)rAr^s �rCr$zRandom.getstate�s&���G��|�|�U�W�-�-�/����@�@rEc�l��	|d}|dkr)|\}}|_t�j|�dS|dkr?|\}}|_	td�|D��}t�j|�dSt	d|�d|j����#t$r
}t
|�d}~wwxYw)Nrr=r:c3�"K�|]	}|dz���dS)lN�)�.0rBs  rC�	<genexpr>z"Random.setstate.<locals>.<genexpr>�s"����%K�%K��a�7�m�m�m�m�m�%K�%KrEzstate with version z( passed to Random.setstate() of version )r@rZr.�tuple�
ValueErrorrYr`)rA�stater\�
internalstaterr^s     �rCr.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.�.B3c�$�|j�Sr?)r$�rAs rC�__getstate__zRandom.__getstate__�s���}�}��rEc�*�|j|�dSr?)r.)rArhs  rC�__setstate__zRandom.__setstate__�s���
�
�e����rEc�>�|jd|j�fS)Nrc)r^r$rks rC�
__reduce__zRandom.__reduce__�s���~�~�r�4�=�=�?�2�2rEc���	|jD]W}d|jvrdSd|jvr|j|_dSd|jvs�E|j|_dSdS)N�
_randbelowr#r*)�__mro__�__dict__�_randbelow_with_getrandbitsrr�_randbelow_without_getrandbits)�cls�kwargsr]s   rC�__init_subclass__zRandom.__init_subclass__�s���	����		�		�A��q�z�z�)�)������
�
�*�*�!$�!@�!@�������1�:�:�%�%��!$�!C�!C������		�		rEc��	|j}|j�}||�}||kr||�}||kr�|Sr?)r#�
bit_length)rA�nr#�k�rs     rCruz"Random._randbelow_with_getrandbits�sK��E��&�&��
�L�L�N���K��N���1�f�f���A��A��1�f�f���rEr;c���	|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)rAr|�maxsizer*�rem�limitr~s       rCrvz%Random._randbelow_without_getrandbits�s���	�
������<�<��N�
O�
O��&�&�(�Q�,�'�'���k���3��'�)���F�H���5�j�j����A��5�j�j���a�'�k�"�Q�&�&rEc�P�	|j|dz�j|d�S)N��little)r#�to_bytes�rAr|s  rCr(zRandom.randbytess'��&�����A��&�/�/��8�<�<rEc	��	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()r;zempty range in randrange(z, �)zzero step for randrange())�_index�_ONErYrrrg)	rA�start�stop�step�istart�istop�width�istepr|s	         rCr+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�2rEc�0�	|j||dz�S�Nr;)r+�rAr[�bs   rCr)zRandom.randintHs��	��~�~�a��1��%�%rEc�h�	|s
td��||jt|��S)Nz$Cannot choose from an empty sequence)�
IndexErrorrrrP)rA�seqs  rCrz
Random.choiceQs.��@��s��C�D�D��4�?�?�3�s�8�,�-�-rEc��	|j}ttdt|���D]%}||dz�}||||c||<||<�'dSr�)rr�reversed�rangerP)rArB�	randbelow�i�js     rCr/zRandom.shuffleWsd��7��O�O�	��%��3�q�6�*�+�	$�	$�A��	�!�a�%� �A��1��q��t�J�A�a�D�!�A�$�$�	$�	$rE)�countsc������	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}c�2��g|]}���|���Srcrc)rd�sr�
cum_counts�
populations  ���rC�
<listcomp>z!Random.sample.<locals>.<listcomp>�s'���J�J�J�!�J�v�v�j�!�4�5�5�5�JrEz,Sample larger than population or is negative��r4r=r;)rJ�	_SequencerYrP�list�_accumulaterg�poprSr,r��_bisectrr�_ceil�_log�set�add)rAr�r}r�r|�total�
selectionsr��result�setsize�poolr�r��selected�selected_addrr�s `             @@rCr,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�	�	��
rE)�cum_weightsr}c�V�������	�
�	|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�c�B��g|]}�����z���Srcrc)rdr�rr|r�r*s  ����rCr�z"Random.choices.<locals>.<listcomp>�s-���R�R�R�A�
�5�5����A��#6�7�7�7�RrEz4The number of choices must be a keyword argument: k=z2Cannot specify both weights and cumulative weightsz3The number of weights does not match the populationrHz*Total of weights must be greater than zerozTotal of weights must be finiter;c	�H��g|]}������zd����S)rrc)rdr�rr��hir�r*r�s  ������rCr�z"Random.choices.<locals>.<listcomp>�s@���+�+�+���6�6�+�v�v�x�%�/?��B�G�H�H�H�+rE)r*rPr��_repeatr�r�rYrJrSrg�	_isfiniter�)rAr��weightsr�r}rrr�r|r*r�s ` ` @@@@@@rCrzRandom.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(c�8�	|||z
|j�zzSr?�r*r�s   rCr1zRandom.uniform�s��R��A��E�T�[�[�]�*�*�*rEr�r7c���	|j�}	|�dn
||z
||z
z}||krd|z
}d|z
}||}}|||z
t||z�zzS#t$r|cYSwxYw)N��?r7)r*�ZeroDivisionError�_sqrt)rA�low�high�mode�ur]s      rCr0zRandom.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�Ac��	|j}	|�}d|�z
}t|dz
z|z}||zdz}|t|�krn�?|||zzS)NTr7r�r6)r*�
NV_MAGICCONSTr�)rA�mu�sigmar*�u1�u2�z�zzs        rCr&zRandom.normalvariate�sr��	���������B��v�v�x��B���c��*�R�/�A��Q����B��d�2�h�Y����
��A��I�~�rEc��	|j}|j}d|_|�Y|�tz}tdt	d|�z
�z�}t|�|z}t
|�|z|_|||zzS)Ng�r7)r*r@�TWOPIr�r��_cos�_sin)rAr�r�r*r��x2pi�g2rads       rCr"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�~�rEc�@�	t|j||��Sr?)�_expr&)rAr�r�s   rCr%zRandom.lognormvariate:s!��	��D�&�&�r�5�1�2�2rEc�J�	td|j�z
�|zS�Nr7)r�r*)rA�lambds  rCr zRandom.expovariateDs'��	��S�4�;�;�=�(�)�)�E�1�1rEc���	|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�r7)r*r�r�r��_pir��_acos)rAr��kappar*r�r~r�r��dr��q�f�u3�thetas              rCr2zRandom.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��rEc���	|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.0r7r5TgH�����z>g�P����?r8)rgr*r��LOG4r�r��
SG_MAGICCONST�_e)rA�alpha�betar*�ainv�bbb�cccr�r��vrBr�r~r�r��ps                rCr!zRandom.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�rEc�d�	|j|d�}|r|||j|d�zzSdS)Nr7r�)r!)rAr�r��ys    rCrzRandom.betavariate�sB��	�*
���e�S�)���1���D�-�-�d�C�8�8�9�9��srEr�c�J�	|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�r7z&p must be in the range 0.0 <= p <= 1.0r;r�g$@TFgffffff�?g=
ףp=@gE���JY��ga��+e�?�{�G�z�?gq=
ףp�?g������@r5g�Q���?g�p=
ף@gffffff@)
rgr*r�r�_log2r�r��_fabsr��_lgamma)rAr|r�r*rBr�r]�setup_complete�spqr�r[�vrr��usr}r�r��lpq�m�hs                    rCrzRandom.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���5rEc�<�	d|j�z
}|d|zzS)Nr7g�r�)rAr�r�s   rCr'zRandom.paretovariate0s&��A�
�$�+�+�-����T�E�\�"�"rEc�Z�	d|j�z
}|t|�d|zzzSr�)r*r�)rAr�r�r�s    rCr3zRandom.weibullvariate7s3��	�
�$�+�+�-�����a���c�D�j�1�1�1rEr?)Nr:)r�r7N�r�r7)r;r�)%�__name__�
__module__�__qualname__r`rDr-r$r.rlrnrpryru�BPFrvrrr(r�r+r)rr/r,rr1r0r&r"r%r r2r!rrr'r3�
__classcell__)r^s@rCrrjst���������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�	2rErc�6�eZdZ	d�Zd�Zd�Zd�Zd�ZexZZ	dS)rc�^�	tjtd��dz	tzS)NrGr=)rSrT�_urandom�	RECIP_BPFrks rCr*zSystemRandom.randomPs"��A����x��{�+�q�0�I�=�=rEc��	|dkr
td��|dzdz}tjt|��}||dz|z
z	S)Nrz#number of bits must be non-negativerGr�)rgrSrTr
)rAr}�numbytesrBs    rCr#zSystemRandom.getrandbitsTsN��H��q�5�5��B�C�C���E�a�<���N�N�8�H�-�.���X��\�A�%�&�&rEc��	t|�Sr?)r
r�s  rCr(zSystemRandom.randbytes\s��&���{�rEc��	dSr?rc�rA�args�kwdss   rCr-zSystemRandom.seedbs
��F��trEc��	td��)Nz*System entropy source does not have state.)�NotImplementedErrorrs   rC�_notimplementedzSystemRandom._notimplementedfs��K�!�"N�O�OrEN)
rrrr*r#r(r-rr$r.rcrErCrrGsm�������>�>�>�'�'�'�������P�P�P�*�)�H�x�x�xrErc�D���ddlm}m}ddlm}|�}��fd�td|�D�}|�}||�}	|||	�}
t
|�}t|�}t||z
d�d|�d�j�����td|	|
||fz�dS)	Nr)�stdev�fmean)�perf_counterc���g|]}�����	Srcrc)rdr�r�funcs  ��rCr�z#_test_generator.<locals>.<listcomp>�s���2�2�2�A�D�D�$�K�K�K�2rEz.3fz sec, z times z"avg %g, stddev %g, min %g, max %g
)
�
statisticsrr�timerr��min�max�printr)
r|rrr�meanr�t0�data�t1�xbarr�r�r�s
 ``          rC�_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�KrE�'c���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)Nrcr)�g333333�?)�dg�?)r�r7)皙�����?r7)r.r5)r�r7)g�������?r7)r7r7)r5r7)g4@r7)gi@r7)�@r/)r�r7gUUUUUU�?)
r)r*r&r%r2rr!r"rr0)�Ns rC�_testr1�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�9rE�fork)�after_in_child�__main__)r*)_�warningsrr��mathrr�rr�rr�rr�rr�r	r�r
r�rr�rr�r
r�rr�rr�rr�rr�rr��osrr
�_collections_abcrr��operatorrr��	itertoolsrr�rr�rr��_os�_randomrUr�ImportError�hashlib�__all__r�r�r�r	rr�rr�_instr-r*r1r0r)rr+r,r/rr&r%r r2r!r"rrr'r3r$r.r#r(r)r1�hasattr�register_at_forkrrcrErC�<module>rCs���*�`#�"�"�"�"�"�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