403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.25
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/pythran/transformations/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/pythran/transformations/__pycache__/normalize_tuples.cpython-311.pyc
�

cR�a���dZddlmZddlmZddlZddlmZddl	m
Z
ddlmZGd�d	ej
��ZGd
�de��ZdS)z@ NormalizeTuples removes implicit variable -> tuple conversion. �)�Identifiers)�TransformationN)�reduce)�OrderedDict)�deepcopyc��eZdZd�Zd�ZdS)�ConvertToTuplec�"�||_||_dS�N)�tuple_id�	renamings)�selfrr
s   �J/usr/lib/python3/dist-packages/pythran/transformations/normalize_tuples.py�__init__zConvertToTuple.__init__
s�� ��
�"�����c
���|j|jvr[td�|j|jtj|jtj��dd����}|j|_|S|S)Nc�v�tj|tj|d��tj����Sr��ast�	Subscript�Constant�Load��x�ys  r�<lambda>z+ConvertToTuple.visit_Name.<locals>.<lambda>s-��S�]���L��D�)�)��H�J�J� � �r)�idr
rr�Namerr�ctx)r�node�nnodes   r�
visit_NamezConvertToTuple.visit_Namesh���7�d�n�$�$�� � ���t�w�'�������
�
�D�$�?�?�
��E���E�I��L��rN)�__name__�
__module__�__qualname__rr"�rrr	r	s2������#�#�#�����rr	c�d�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�ZdS)�NormalizeTuplesa�
    Remove implicit tuple -> variable conversion.

    >>> import gast as ast
    >>> from pythran import passmanager, backend
    >>> node = ast.parse("def foo(): a=(1,2.) ; i,j = a")
    >>> pm = passmanager.PassManager("test")
    >>> _, node = pm.apply(NormalizeTuples, node)
    >>> print(pm.dump(backend.Python, node))
    def foo():
        a = (1, 2.0)
        i = a[0]
        j = a[1]
    �__tuplec�.�tj|��dSr)rr)rs rrzNormalizeTuples.__init__1s�����%�%�%�%�%rc��d}	d�tj|��}||jvr|j�|��|S|dz
}�K)Nr�z{}{})�formatr(�
tuple_name�ids�add)r�i�new_ids   r�
get_new_idzNormalizeTuples.get_new_id4sV��
��	��]�]�?�#=�q�A�A�F��T�X�%�%�����V�$�$�$��
��Q���
	rc�����t|tj��r�r��|j<d�_dSdSt|tj��st|tj��r$���fd�t|j��D��dSt|tj	tj
f��r�r��|<d�_dSdSt�)NTc�L��g|] \}}��|�|fz�����!Sr&)�traverse_tuples)�.0r1�nr
r�states   ���r�
<listcomp>z3NormalizeTuples.traverse_tuples.<locals>.<listcomp>DsE���
/�
/�
/���A��
!�
!�!�U�a�T�\�9�
=�
=�
/�
/�
/r)�
isinstancerrr�update�Tuple�List�	enumerate�eltsr�	Attribute�NotImplementedError)rr r9r
s` ``rr6zNormalizeTuples.traverse_tuples>s�������d�C�H�%�%�	&��
#�%*�	�$�'�"�"�����
#�
#���c�i�
(�
(�	&�J�t�S�X�,F�,F�	&�
/�
/�
/�
/�
/�
/�"�4�9�-�-�
/�
/�
/�
/�
/�
/�
��s�}�c�m�<�
=�
=�	&��
#�"'�	�$��"�����
#�
#�&�%rc���|�|��}t��}|�|jd|��|rd|_|���|fS|S)Nr&T)�
generic_visitrr6�targetr<r3)rr r
s   r�visit_comprehensionz#NormalizeTuples.visit_comprehensionMsa���!�!�$�'�'���M�M�	����T�[�"�i�8�8�8��	��D�K��?�?�$�$�i�/�/��Krc�d��|D]4}t||��t||�������5�fd�|jD��}|}t	|��D]�\}}t|t��r�d�|d|��}tj	||j|j
jdd��|j|_
t||d���|��}d�_
��|D]!}t||t||�����"|j|_|S)Nc�:��g|]}��|����Sr&)�visit)r7�	generatorrs  �rr:z1NormalizeTuples.visit_AnyComp.<locals>.<listcomp>Zs%���M�M�M�	�d�j�j��+�+�M�M�Mrz{0}{1}rr,T)�setattrrI�getattr�
generatorsr?r;�tupler-rrrErr	r<)	rr �fields�fieldrMr!r1�g�gtargets	`        r�
visit_AnyCompzNormalizeTuples.visit_AnyCompWsA����	C�	C�E��D�%����G�D�%�,@�,@�!A�!A�B�B�B�B�M�M�M�M�T�_�M�M�M�
����j�)�)�	#�	#�D�A�q��!�U�#�#�
#�"�/�/�!�A�$��2�2��-0�X���$�Q�'�.�2�D�$�.@�.@�� ��#�*�'�w��!��5�5�;�;�E�B�B��"�����	8�	8�E��D�%����!6�!6�7�7�7�7��*����rc�.�|�|d��S�N�elt�rS�rr s  r�visit_ListCompzNormalizeTuples.visit_ListCompi����!�!�$��.�.�.rc�.�|�|d��SrUrWrXs  r�
visit_SetCompzNormalizeTuples.visit_SetComplrZrc�0�|�|dd��S)N�key�valuerWrXs  r�visit_DictCompzNormalizeTuples.visit_DictCompos���!�!�$��w�7�7�7rc�.�|�|d��SrUrWrXs  r�visit_GeneratorExpz"NormalizeTuples.visit_GeneratorExprrZrc��|�|��t|jj��D]�\}}t��}|�|d|��|rv|���}t
j|t
j��dd��|jj|<t||���
|j��|_��|S)Nr&)rDr?�argsrr6r3rr�Paramr	rI�body)rr r1�argr
�nnames      r�visit_LambdazNormalizeTuples.visit_Lambdaus������4� � � ���	��/�/�	N�	N�F�A�s�#�
�
�I�� � ��b�)�4�4�4��
N����)�)��$'�H�U�C�I�K�K��t�$L�$L��	��q�!�*�5�)�<�<�B�B�4�9�M�M��	���rc��|�|��t|jtjtjf��}|rgn|g}t
|j��D�]�\}}t|tj��st|tj	���rft��}|�|d|��|�r>|rt|j��}n:tj|�
��tj��dd��}t|��}tj��|_||j|<|���D]�\}	}
t%d�|
|��}t|	t&��rQ|�tjtj|	tj��dd��g|d�����}|�tj|	g|d���������|p|S)Nr&c�v�tj|tj|d��tj����Srrrs  rrz.NormalizeTuples.visit_Assign.<locals>.<lambda>�s-���� !� #��Q�� 5� 5� #��
�
�*,�*,�r)rDr;r_rrrAr?�targetsr=r>rr6rr3�Storerr�itemsr�str�append�Assign)rr �no_tmp�extra_assignr1�tr
�gstore�gload�renamer9r!s            r�visit_AssignzNormalizeTuples.visit_Assign�s�����4� � � ��D�J���3�=�(A�B�B��#�/�r�r�$����d�l�+�+�	I�	I�D�A�q��!�S�Y�'�'�
I�:�a���+B�+B�
I�'�M�M�	��$�$�Q��I�6�6�6��I��C�!)�$�*�!5�!5���!$��$�/�/�*;�*;�*-�)�+�+�t�T�"C�"C��$�V�,�,�E� #��
�
�E�I�&,�D�L��O�)2���):�):�I�I�
��� &�,�,�"�!�
!#�!#��&�f�c�2�2�I�(�/�/� #�
�%(�X�f�c�i�k�k�.2�D�&:�&:�%;�$)�4�!1�!1�2�2�2�2�)�/�/��
�F�8�;@�$�1H�1H�I�I�I�I���#�t�#rc�H�|j}t|tj��st|tj���rPt��}|�|d|��|�r(|���}tj||jj	dd��|_|�
��D]�\}}td�|tj|tj��dd����}t|t��rW|j�dtjtj|tj��dd��g|d������|j�dtj|g|d������|�|��|S)Nr&c�v�tj|tj|d��tj����Srrrs  rrz+NormalizeTuples.visit_For.<locals>.<lambda>�s-��S�]���L��D�1�1��H�J�J�&(�&(�rr)rEr;rr=r>rr6r3rrrnrrrorf�insertrqrmrD)rr rEr
rRrwr9r!s        r�	visit_ForzNormalizeTuples.visit_For�s�������f�c�i�(�(�	O�J�v�s�x�,H�,H�	O�#�
�
�I�� � ���Y�7�7�7��
O��/�/�+�+��!�h�w�����t�L�L���%.�_�_�%6�%6�O�O�M�F�E�"�(�(�����#�(�*�*�d�D�A�A�
C�C�E�"�&�#�.�.�	O��	�(�(��),��.1�h�v�7:�y�{�{�7;�T�/C�/C�.D�.3�D�	*:�*:�+�+�+�+��	�(�(��C�J��x���,M�,M�N�N�N�N����4� � � ��rc�l�|�t|��|_|�|��Sr)�gatherrr/rDrXs  r�visit_FunctionDefz!NormalizeTuples.visit_FunctionDef�s+���;�;�{�D�1�1����!�!�$�'�'�'rN)r#r$r%�__doc__r.rr3r6rFrSrYr\r`rbrirxr|rr&rrr(r( s�������
�
��J�&�&�&����
&�
&�
&�������$/�/�/�/�/�/�8�8�8�/�/�/�	�	�	�$$�$$�$$�L���<(�(�(�(�(rr()r��pythran.analysesr�pythran.passmanagerr�gastr�	functoolsr�collectionsr�copyr�NodeTransformerr	r(r&rr�<module>r�s���F�F�(�(�(�(�(�(�.�.�.�.�.�.�����������#�#�#�#�#�#������������S�(����(f(�f(�f(�f(�f(�n�f(�f(�f(�f(�f(r

Youez - 2016 - github.com/yon3zu
LinuXploit