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 :  /lib/python3/dist-packages/pythran/optimizations/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

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

cR�a����dZddlmZddlmZddlmZddlmZddl	m
Z
ddlmZm
Z
ddlmZdd	lmZdd
lZGd�de��Zd
S)
z; Expand some builtins implementation when it is profitable.�)�Aliases)�PureExpressions)�Transformation)�MODULES)�FunctionIntr)�path_to_attr�path_to_node)�PythranSyntaxError)�deepcopyNc�Z�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZdS)�InlineBuiltinsa(
    Replace some builtins by their bodies.

    This may trigger some extra optimizations later on!

    >>> import gast as ast
    >>> from pythran import passmanager, backend
    >>> pm = passmanager.PassManager("test")
    >>> node = ast.parse('''
    ... def foo(a):
    ...     return  a + 1
    ... def bar(b):
    ...     return builtins.map(bar, (1, 2))''')
    >>> _, node = pm.apply(InlineBuiltins, node)
    >>> print(pm.dump(backend.Python, node))
    def foo(a):
        return (a + 1)
    def bar(b):
        return [bar(1), bar(2)]
    c�F�tj|tt��dS�N)r�__init__rr)�selfs �G/usr/lib/python3/dist-packages/pythran/optimizations/inline_builtins.pyrzInlineBuiltins.__init__&s�����g��?�?�?�?�?�c�H���d|_g}td��jdd�D����}t|��D]0�|��fd��jdd�D�����1tj�fd�|D��tj����S)NTc3�>K�|]}t|j��V��dSr)�len�elts)�.0�ns  r�	<genexpr>z4InlineBuiltins.inlineBuiltinsXMap.<locals>.<genexpr>-s*����7�7�A�C���K�K�7�7�7�7�7�7r�c�*��g|]}|j���S�)r)rr�is  �r�
<listcomp>z5InlineBuiltins.inlineBuiltinsXMap.<locals>.<listcomp>/s���:�:�:�q�����:�:�:rc�R��g|]#}tj�jd|g����$S�r)�ast�Call�args)r�elt�nodes  �rrz5InlineBuiltins.inlineBuiltinsXMap.<locals>.<listcomp>0s-���I�I�I�S���$�)�A�,��R�8�8�I�I�Ir)�update�minr$�range�appendr"�List�Load)rr&r�neltsrs `  @r�inlineBuiltinsXMapz!InlineBuiltins.inlineBuiltinsXMap)s�����������7�7���1�2�2��7�7�7�7�7���u���	<�	<�A��K�K�:�:�:�:�D�I�a�b�b�M�:�:�:�;�;�;�;��x�I�I�I�I�D�I�I�I���
�
�$�$�	$rc�@�t|tj��s|S|j|j}t|��dkr|St
t|����}|tddur|Std�|j
dd�D����s|S|j|j
d}t|��dkr|St
t|����}t|tjtf��s|S|�
|��S)Nr�builtins�mapc3�bK�|]*}t|tjtjf��V��+dSr)�
isinstancer"r+�Tuple)r�args  rrz3InlineBuiltins.inlineBuiltinsMap.<locals>.<genexpr>@sI����-�-���c�C�H�c�i�#8�9�9�-�-�-�-�-�-rr)r3r"r#�aliases�funcr�next�iterr�allr$�FunctionDefrr.)rr&�func_aliases�obj�mapped_func_aliasess     r�inlineBuiltinsMapz InlineBuiltins.inlineBuiltinsMap3s#���$���)�)�	��K��|�D�I�.���|����!�!��K��4��%�%�&�&���g�j�)�%�0�0�0��K��-�-�"�i����m�-�-�-�-�-�	��K�"�l�4�9�Q�<�8���"�#�#�q�(�(��K��4�+�,�,�-�-���#����>�?�?�	��K��&�&�t�,�,�,rc�Z�|�|��}|�|��}|Sr)�
generic_visitr?�rr&s  r�
visit_CallzInlineBuiltins.visit_CallOs-���!�!�$�'�'���%�%�d�+�+���rc���t|tj��rtj|jd��S|dkrt	|jd��S|j|S)Nrr)r3r"�Constant�valuerr)r�base�size�indexs    r�make_array_indexzInlineBuiltins.make_array_indexTsT���d�C�L�)�)�	2��<��
�D�1�1�1��1�9�9��D�I�a�L�)�)�)��y���rc��t|tj��r|dfSt|tjtjf��r|t|j��fSt|tj��sdS|j|j	}t|��dkrdStt|����}|tddtddfvrdSt|j
��dkrdSt|j
dtjtjf��r,|j
dt|j
dj��fSdS)Nr)Nr�numpy�array�asarrayr)r3r"rEr+r4rrr#r6r7r8r9rr$)rr&r<r=s    r�fixedSizeArrayzInlineBuiltins.fixedSizeArray[s*���d�C�L�)�)�	���7�N��d�S�X�s�y�1�2�2�	(���T�Y���'�'��$���)�)�	��7��|�D�I�.���|����!�!��7��4��%�%�&�&���w�w�'��0�'�'�2B�9�2M�N�N�N��7��t�y�>�>�Q����7��d�i��l�S�X�s�y�$9�:�:�	8��9�Q�<��T�Y�q�\�%6�!7�!7�7�7��wrc��������tjtjtjf}t	�j|��rt	�j|��r�S���j��\�����j��\���r�s�S�dkr�dkr��krtd����d�_	������fd�tt������D��}tjtd��tj|tj����gg��}td��h�j|j<|S)Nr�Invalid numpy broadcastingTc����g|]\}tj����|��t�j��������|������]Sr)r"�BinOprJ�type�op�rr�lbase�lsizer&�rbase�rsizers  ������rrz<InlineBuiltins.inlineFixedSizeArrayBinOp.<locals>.<listcomp>�ss���7�7�7���I�d�3�3�E�5�!�D�D�+�d�4�7�m�m�o�o�"�3�3�E�5�!�D�D�F�F�7�7�7r�rLrM)r"r+r4rEr3�left�rightrOr
r'r)�maxr#rr,r	r6r7)	rr&�alike�operands�resrWrXrYrZs	``   @@@@r�inlineFixedSizeArrayBinOpz(InlineBuiltins.inlineFixedSizeArrayBinOpusl����������#�)�S�\�1���d�i��'�'�	�J�t�z�5�,I�,I�	��K��*�*�4�9�5�5���u��*�*�4�:�6�6���u��	�E�	��K��A�:�:�%�1�*�*��%���$�%A�4�H�H�H����7�7�7�7�7�7�7�7�7�#�3�u�e�#4�#4�5�5�7�7�7���h�|�$6�7�7��	�(�C�H�J�J�7�7�8�����#/�/A�"B�"B�!C���S�X���
rc�Z�|�|��}|�|��}|Sr)rArbrBs  r�visit_BinOpzInlineBuiltins.visit_BinOp�s-���!�!�$�'�'���-�-�d�3�3���rc�������t�jtjtjtjf��r�S���j��\���s�Sd�_����fd�t���D��}tj	td��tj|tj����gg��}td��h�j
|j<|S)NTc
���g|]F}tjt�j��������|������GSr)r"�UnaryOprTrUrJ)rrrGr&rrHs  ����rrz>InlineBuiltins.inlineFixedSizeArrayUnaryOp.<locals>.<listcomp>�s\���*�*�*���K�
��T�W�
�
��� $� 5� 5�d�D�!� D� D�F�F�*�*�*rr[)r3�operandr"rEr+r4rOr'r)r#rr,r	r6r7)rr&r`rarGrHs``  @@r�inlineFixedSizeArrayUnaryOpz*InlineBuiltins.inlineFixedSizeArrayUnaryOp�s��������d�l�S�\�3�8�S�Y�$G�H�H�	��K��(�(���6�6�
��d��	��K����*�*�*�*�*�*�*�"�4�[�[�*�*�*���h�|�$6�7�7��	�(�C�H�J�J�7�7�8�����#/�/A�"B�"B�!C���S�X���
rc�Z�|�|��}|�|��}|Sr)rArirBs  r�
visit_UnaryOpzInlineBuiltins.visit_UnaryOp��-���!�!�$�'�'���/�/��5�5���rc��������	�t�j��dkr�S�jd}tjtjtjf}t
�j|��rt
||��r�S���j��\����|��\��	�r�s�S�	dkr�dkr�	�krtd����d�_
�����	�fd�tt��	����D��}tj
td��tj|tj����gg��}t!d��h�j|j<|S)NrrrQTc����g|]d}tj����|��t�jd����g����|��g����eSr!)r"�ComparerJrT�opsrVs  ������rrz>InlineBuiltins.inlineFixedSizeArrayCompare.<locals>.<listcomp>�s����7�7�7���K�� 5� 5�e�U�A� F� F�!2��d�h�q�k�!2�!2�!4�!4� 5�!%�!6�!6�u�e�Q�!G�!G� H�J�J�7�7�7rr[)r�comparatorsr"rEr+r4r3r\rOr
r'r)r^r#rr,r	r6r7)
rr&�
node_rightr_r`rarWrXrYrZs
``    @@@@r�inlineFixedSizeArrayComparez*InlineBuiltins.inlineFixedSizeArrayCompare�s����������t�� � �A�%�%��K��%�a�(�
���c�h��	�1���d�i��'�'�	�J�z�5�,I�,I�	��K��*�*�4�9�5�5���u��*�*�:�6�6���u��	�E�	��K��A�:�:�%�1�*�*��%���$�%A�4�H�H�H����7�7�7�7�7�7�7�7�7�#�3�u�e�#4�#4�5�5�7�7�7���h�|�$6�7�7��	�(�C�H�J�J�7�7�8�����#/�/A�"B�"B�!C���S�X���
rc�Z�|�|��}|�|��}|Sr)rArsrBs  r�
visit_ComparezInlineBuiltins.visit_Compare�rlrN)�__name__�
__module__�__qualname__�__doc__rr.r?rCrJrOrbrdrirkrsrurrrr
r
s���������*@�@�@�$�$�$�-�-�-�8���
 � � ����4���4���
���(���
���<����rr
)ry�pythran.analysesr�!pythran.analyses.pure_expressionsr�pythran.passmanagerr�pythran.tablesr�pythran.intrinsicr�
pythran.utilsrr	�pythran.syntaxr
�copyr�gastr"r
rrr�<module>r�s���A�A�$�$�$�$�$�$�=�=�=�=�=�=�.�.�.�.�.�.�"�"�"�"�"�"�*�*�*�*�*�*�4�4�4�4�4�4�4�4�-�-�-�-�-�-����������������^�����r

Youez - 2016 - github.com/yon3zu
LinuXploit