add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�Wc�cs��dZddlmZddlmZddlmZddlmZmZm	Z	m
Z
mZmZd�Z
Gd�dej�Zd	�Zd
�Zgdfd�Zd
�ZdS)a:Fixer for function definitions with tuple parameters.

def func(((a, b), c), d):
    ...

    ->

def func(x, d):
    ((a, b), c) = x
    ...

It will also support lambdas:

    lambda (x, y): x + y -> lambda t: t[0] + t[1]

    # The parens are a syntax error in Python 3
    lambda (x): x + y -> lambda x: x + y
�)�pytree)�token)�
fixer_base)�Assign�Name�Newline�Number�	Subscript�symscs��t|tj�o.|jdjt
jkS)N�)�
isinstancer�Node�children�typerZSTRING)�stmt� �7/usr/lib64/python3.12/lib2to3/fixes/fix_tuple_params.py�is_docstringrs5���d�F�K�K�(�1��=�=��� � �E�L�L�0�1�cs&�eZdZdZdZdZd�Zd�ZdS)�FixTupleParamsiTa
              funcdef< 'def' any parameters< '(' args=any ')' >
                       ['->' any] ':' suite=any+ >
              |
              lambda=
              lambdef< 'lambda' args=vfpdef< '(' inner=any ')' >
                       ':' body=any
              >
              cs����
�d|vr�j||�Sg�
|d}|d}|djdjtjkr1d}|djdj
}t
��n+d}d}tjtjd��d
��
�fd
�	}|jtjkr
||�nl|jtjkrMt|j�D]4\}}	|	jtjks�&||	|dk���6�
sdS�
D]}
|d|
_
�|}|dkrd�
d_n5t|dj|�r|�
d_|dz}�
D]}
|d|
_
��
|dj||t!|dz|t#�
�zdz�D]}||dj|_�!|dj%�dS)NZlambda�suite�argsr
�rz; �Fcsp��t�j��}|j�}d|_t	||j��}|rd|_|j|��j
tjtj|�j�g��dS)Nr� )r�new_name�clone�prefixr�replace�appendrrr	Zsimple_stmt)Z	tuple_arg�
add_prefix�n�argr�end�	new_lines�selfs     ���r�handle_tuplez.FixTupleParams.transform.<locals>.handle_tupleCs�����T�]�]�_�%�A��/�/�#�C��C�J��#�q�w�w�y�)�D��z�������a� � ����V�[�[��)9�)9�*.��	�	��)<�>�
?�
?�
?�
?r)rr)F)�transform_lambdar
rrZINDENT�valuerrZLeafr	ZtfpdefZ
typedargslist�	enumerateZparentrrZrangeZlenZchanged)r$�node�resultsrrZstartZindentr%�ir!ZlineZafterr"r#s`           @@r�	transformzFixTupleParams.transform.sW������w����(�(��w�7�7��	��� ���v�����8���Q��$�$����4�4��E��1�X�&�&�q�)�/�/�F��)�C�C��E��F��+�+�e�l�l�B�/�C�
		?�		?�		?�		?�		?�		?�		?�		?��9�9����#�#��L�����
�Y�Y�$�,�,�
,�
,�#�D�M�M�2�
:�
:���3��8�8�t�{�{�*�*��!�L��!�a�%�9�9�9�9��y��F��	#�	#�D���(�D�K�K����A�:�:�"%�I�a�L���
�%��(�+�+�E�2�
3�
3�"(�I�a�L���A�I�E��	#�	#�D���(�D�K�K�)2��a����%��&��u�Q�w��c�)�n� 4�Q� 6�7�	1�	1�A�*0�E�!�H���a� �'�'�
�a�������rcs&�|d}|d}t|d�}|jtjkr,|j	�}d|_|j
|�dSt|�}t|�}|jt|��}t|d��}	|j
|	j	��|j�D]�}
|
jtjks�#|
j|vs�2d�||
jD�}tjt j"|	j	�g|z�}|
j
|_|
j
|���dS)Nr�body�innerr)rcs2�g|]}|j���S�)r�Z.0Zc�  r�
<listcomp>z3FixTupleParams.transform_lambda.<locals>.<listcomp>�s��C�C�C�A�a�g�g�i�i�i�Cr)�
simplify_argsrr�NAMErrr�find_params�map_to_indexr�
tuple_namerZ
post_orderr'rrr	Zpower)
r$r)r*rr-r.ZparamsZto_indexZtup_nameZ	new_paramr Z
subscriptsZnews
             rr&zFixTupleParams.transform_lambdansG���v����v����g�g�.�/���:�:����#�#��K�K�M�E��E�L��L�L�����F��T�"����'���=�=��F�!3�4����#�.�.�	����Y�_�_�&�'�'����"�	�	�A��v�v����#�#�����8�(;�(;��C�C��!�'�'�1B�C�C�
��k�k�$�*�*�#,�?�?�#4�"5�
�"B�D���X�X��
��	�	�#����
	�	rN)Z__name__Z
__module__Z__qualname__Z	run_orderZ
BM_compatibleZPATTERNr,r&r/rrrrsD�������I��M��G�>�>�>�@����rrcsf�|jtjtjfvr|S|jtj
krS|jtj
kr2|jd}|jtj
kr�2|Std|z��)NrzReceived unexpected node %s)rr	Zvfplistrr4�vfpdefr
ZRuntimeError�r)rrr3r3�s����y�y�T�\�\�5�:�:�.�.�.���	
���d�k�k�	!�	!��i�i�4�;�;�&�&��=�=��#�D��i�i�4�;�;�&�&����
�4�t�;�
<�<rcs��|jtjkrt|jd�S|jt
jkr|jSd�|jD�S)Nrcsj�g|]/}|jtjks�#t|���1Sr/)rrZCOMMAr5r0r1rr2zfind_params.<locals>.<listcomp>�s-��K�K�K�q�Q�V�V�u�{�{�5J�5J��K��N�N�N�Kr)rr	r8r5r
rr4r'r9rrr5r5�s[���y�y�D�K�K����4�=�=��+�,�,�	
���e�j�j�	 �	 ��z�z��K�K�D�M�M�K�K�KrNcs��|�i}t|�D]U\}}ttt|���g}t	|t
�rt
|||���N||z||<�W|S)N)�d)r(rrZstrr�listr6)�
param_listrr:r+�objZtrailers      rr6r6�sp���y����J�'�&�&���3��V�C��F�^�,�-���c�4� � ���g��+�+�+�+��g�%�A�c�F�F��Hrcs��g}|D]E}t|t�r|jt|���4|j|��Gdj	|�S)NZ_)rr;rr7Zjoin)r<Zlr=s   rr7r7�sV��
�A������c�4� � �
�H�H�Z��_�%�%�%�
�H�H�S�M�M�M��8�8�A�;�r)Z__doc__rrZpgen2rrZ
fixer_utilrrrrrr	rZBaseFixrr3r5r6r7r/rr�<module>r>s����*������������������G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�1�1�1�g�g�g�g�g�Z�'�'�g�g�X	=�	=�	=�L�L�L�%'�$�	
�	
�	
�	
�����r