add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�WcJ-���	ddlZddlZddlZddlZddgZdZ	e
ZGd�dejj�Zd
d	�ZdS)�N�error�openic��eZdZeZeZdd�Zd�Zd�Zd�ZeZ	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�ZeZd�Zd�ZeZd�Zd�Zd�ZdS)�	_Database�cc���|jj|�}||_|dk|_|dz|_|dz|_|dz|_d|_|j|�|j|�dS)N�rs.dirs.dats.bak)
�_os�fsencode�_mode�	_readonly�_dirfile�_datfile�_bakfile�_index�_create�_update)�self�filebasename�mode�flags    �!/usr/lib64/python3.12/dbm/dumb.py�__init__z_Database.__init__0s���x�x�(�(��6����
��#�+���%�w�.��
�%�w�.��
�$�w�.��
����	
���T������T�����c���|dkr?|j|j|jfD]}	tj|��	t
j|jdd��}|j�dS#t
$rY�`wxYw#t
$ra|dvr�t
j|jdd��5}|j|j�ddd�YdS#1swYYdSxYwwxYw)N�nr	�Latin-1��encoding�rr�w)
rrrr
�remove�OSError�_ior�close�_chmod)rr�filename�fs    rrz_Database._createJsS���3�;�;�!�]�]�D�M�M�4�=�=�I�
�
����J�J�x�(�(�(�	��������i�@�@�A�
�G�G�I�I�I�I�������D������
�	+�	+�	+��:�%�%�����$�-�-��y�A�A�
+�Q����D�M�M�*�*�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����	+���s;�A>�$B�>
B�
B�3C9�C*�	C9�*C5	�/C9�5C9c�~�d|_i|_	tj|jdd��}|5|D]N}|j�}t
j|�\}}|jd�}||j|<�P	ddd�dS#1swYdSxYw#t$r|dvr�d|_YdSwxYw)NFr	rrr T)
�	_modifiedrr$rr�rstrip�_ast�literal_eval�encoder#)rrr(�line�key�pos_and_siz_pairs      rrz_Database._update]s!��������	8��������i�@�@�A��
8�
8��8�8�D��;�;�=�D�,0�,=�,=�d�,C�)�C�)��*�*�Y�/�C�'7�D�K�K��$�$�	8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8������	"�	"�	"��:�%�%��!�D�N�N�N�N�	"���s�$B"�AB�B�"B<�;B<c�~�|j�|jsdS	|jj|j�	|jj
|j|j�|jj|jdd��5}|j|j�|jj�D]/\}}|jd��d|�d�}|j|��1	ddd�dS#t
$rY��wxYw#t
$rY��wxYw#1swYdSxYw)Nr!rr�, �
)rr*r
�unlinkrr#�renamerr$rr&�items�decode�write)rr(r0r1�entrys     r�_commitz_Database._commitqs����;�;��d�n�n�n��F�	��H�H�O�O�D�M�M�*�*�	��H�H�O�O�D�M�M�4�=�=�9�9��X�X�]�]�4�=�=�#�	�]�
B�	�a��K�K��
�
�&�&�)-���):�):�)<�
�
�%��%�'*�j�j��&;�&;�&;�=M�=M�=M�N���������	
�	�	�	�	�	�	�	���	�	�	��D�	�����
�	�	�	��D�	����	�	�	�	�	�	�	�	�	�	���s0�&D�1D"�A)D2�
D�D�"
D/�.D/�2D<c�8�|j�
td��dS�N�"DBM object has already been closed)rr�rs r�_verify_openz_Database._verify_open�s ���;�;���<�=�=��rc�V�t|t�r|jd�}|j�|j|\}}tj|jd�5}|j|�|j|�}ddd�|S#1swYSxYw)N�utf-8�rb)
�
isinstance�strr.r@rr$rr�seek�read)rr0�pos�sizr(�dats      r�__getitem__z_Database.__getitem__�s����c�3����*�*�W�%�C�������;�;�s�#���S�
�X�X�d�m�m�T�
*�	�a�
�F�F�3�K�K��&�&��+�C�	�	�	�	�	��
�	�	�	�	�	�	�	�	��
���s�.%B�B(c��tj|jd�5}|jdd�t	|j��}|tzdz
tztz}|jd||z
z�|}|j|�ddd�t|�fS#1swY�xYw)N�rb+r���)	r$rrrF�int�tell�
_BLOCKSIZEr9�len)r�valr(rH�nposs     r�_addvalz_Database._addval�s���
�X�X�d�m�m�U�
+�	�q�
�F�F�1�a�L�L��a�f�f�h�-�C��:�%��)�j�8�J�F�D�
�G�G�E�4��8�$�%�%��C�
�G�G�C�L�L�
	�	�	�	�	��S��X���	�	�	�	�	�	�	�	�	���s�A9B4�4B=c���tj|jd�5}|j|�|j	|�ddd�|t|�fS#1swY�xYw)NrM)r$rrrFr9rT)rrHrUr(s    r�_setvalz_Database._setval�s���
�X�X�d�m�m�U�
+�	�q�
�F�F�3�K�K�
�G�G�C�L�L�	�	�	�	�	��S��X���	�	�	�	�	�	�	�	�	���s�%A � A)c�"�||j|<tj|jdd��5}|j	|j�|j|j
d��d|�d��ddd�dS#1swYdSxYw)N�arrr3r4)rr$rrr&r9r8)rr0r1r(s    r�_addkeyz_Database._addkey�s���+����C��
�X�X�d�m�m�S�9�
=�
=�	L���K�K��
�
�&�&�
�G�G�#�*�*�Y�"7�"7�"7�9I�9I�9I�J�K�K�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L���s�AB�Bc�$�|jr
td��t|t�r|j	d�}n't|t
tf�s
td��t|t�r|j	d�}n't|t
tf�s
td��|j�d|_	||jvr%|j||j|��dS|j|\}}|tzdz
tz}t|�tzdz
tz}||kr"|j||�|j|<dS|j|�|j|<dS)N�'The database is opened for reading onlyrBzkeys must be bytes or stringszvalues must be bytes or stringsTrO)r
rrDrEr.�bytes�	bytearray�	TypeErrorr@r*rr\rWrSrTrY)rr0rUrHrI�	oldblocks�	newblockss       r�__setitem__z_Database.__setitem__�s[���>�>�>��A�B�B��c�3����*�*�W�%�C�C��C�%��!3�4�4��;�<�<��c�3����*�*�W�%�C�C��C�%��!3�4�4��=�>�>����������d�k�k�!�!��L�L��d�l�l�3�/�0�0�0�0��{�{�3�'�H�C���z�)�A�-�*�<�I��S��J�.��2�z�A�I��I�%�%�#'�<�<��S�#9����C� � � �
$(�<�<��#4����C� � � rc���|jr
td��t|t�r|j	d�}|j�d|_|j|=|j�dS)Nr^rBT)	r
rrDrEr.r@r*rr;�rr0s  r�__delitem__z_Database.__delitem__�se���>�>�>��A�B�B��c�3����*�*�W�%�C����������K�K���
	
������rc�j�	t|j�S#t$rtd�d�wxYwr=)�listrrarr?s r�keysz_Database.keys��D��	H�����$�$���	H�	H�	H��<�=�4�G�	H������2c�p���j��fd��jj�D�S)Nc�&��g|]}|�|f��S�ro)�.0r0rs  �r�
<listcomp>z#_Database.items.<locals>.<listcomp>�s"���?�?�?�S��d�3�i� � � �?r)r@rrjr?s`rr7z_Database.items�s6��������?�?�?�?�D�K�K�,<�,<�,>�?�?�?rc��t|t�r|jd�}	||jvS#t$r|j�td�d��wxYw)NrBr>)rDrEr.rrarrfs  r�__contains__z_Database.__contains__�sg���c�3����*�*�W�%�C�	��$�+�+�%�%���	�	�	��{�{�"��@�A�t�K��		���s	�
5�&Ac�j�	t|j�S#t$rtd�d�wxYwr=)�iterrrarr?s r�iterkeysz_Database.iterkeysrkrlc�j�	t|j�S#t$rtd�d�wxYwr=)rTrrarr?s r�__len__z_Database.__len__sD��	H��t�{�{�#�#���	H�	H�	H��<�=�4�G�	H���rlc��	|j�dx|_x|_x|_|_dS#dx|_x|_x|_|_wxYw�N)r;rrrrr?s rr%z_Database.closes[��	O��L�L�N�N�JN�N�D�K�N�$�-�N�$�-�$�-�-�-��$�N�D�K�N�$�-�N�$�-�$�-�N�N�N�Ns	�1�Ac�T�|jj||j�dSrz)r
�chmodr)r�files  rr&z_Database._chmods!�������t�T�Z�Z�(�(�(�(rc��|Srzror?s r�	__enter__z_Database.__enter__s���rc�(�|j�dSrz)r%)r�argss  r�__exit__z_Database.__exit__s���
�
����rN)r)�__name__�
__module__�__qualname__r
r$rrrr;�syncr@rKrWrYr\rdrgrjr7rsrv�__iter__rxr%�__del__r&rr�rorrrr#sy�������C�

�C�����4���&8�8�8�(���2�D�>�>�>����������L�L�L�5�5�5�J
�
�
�H�H�H�@�@�@�	�	�	�H�H�H�
�H�H�H�H�O�O�O��G�)�)�)��������rrr�c���		tjd�}tj|�||z}|dvr
td��t	|||��S#t$rY�-wxYw)Nr)r	r!rrz)Flag must be one of 'r', 'w', 'c', or 'n')r)r
�umask�AttributeError�
ValueErrorr)r}rr�ums    rrr#s����
�Y�Y�q�\���	�	�"�
�
�
��s�|���'�'�'��D�E�E��T�4�d�+�+�+���
�
�
���
���s�.A�
A%�$A%)rr�)�astr,�ior$�osr
�collections.abc�collections�__all__rSr#r�abc�MutableMappingrrrorr�<module>r�s����.�����������������F�
��
�
���}�}�}�}�}����.�.�}�}�@,�,�,�,�,�,r