403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
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__/comprehension_patterns.cpython-311.pyc
�

cR�a0��n�dZddlmZddlmZddlmZddlmZddl	m
Z
mZddlZ
Gd�d	e��ZdS)
zH Comprehension patterns transforms list comprehension into intrinsics.  �)�OptimizableComprehension)�Transformation)�ConvertToTuple)�mangle)�attr_to_path�path_to_attrNc�6�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�ComprehensionPatternsa\
    Transforms list comprehension into intrinsics.
    >>> import gast as ast
    >>> from pythran import passmanager, backend
    >>> node = ast.parse("def foo(y) : return (x for x in y)")
    >>> pm = passmanager.PassManager("test")
    >>> _, node = pm.apply(ComprehensionPatterns, node)
    >>> 'map' in pm.dump(backend.Python, node)
    True

    >>> node = ast.parse("def foo(y) : return [0 for _ in builtins.range(y)]")
    >>> _, node = pm.apply(ComprehensionPatterns, node)
    >>> print(pm.dump(backend.Python, node))
    def foo(y):
        return ([0] * builtins.len(builtins.range(y)))
    c�:�tj|t��dS�N)r�__init__r)�selfs �N/usr/lib/python3/dist-packages/pythran/optimizations/comprehension_patterns.pyr
zComprehensionPatterns.__init__s�����&>�?�?�?�?�?�c���d|_|�|��|jrTtjdt	d�����}tj|g���}|j�d|��|S)NF�	itertools)�name�asname)�namesr)�
use_itertools�
generic_visit�ast�aliasr�Import�body�insert)r�node�import_alias�importIts    r�visit_Modulez"ComprehensionPatterns.visit_Module"s���"������4� � � ���	*��9�+�,2�;�,?�,?�A�A�A�L��z���7�7�7�H��I���Q��)�)�)��rc�P�|j�rtjtjtj|jjtj��dd��ggdggdg��t|j��dkr+tj	tj
��|j��n|jd��}tjtjdtj��dd���dtj�����}tj
|||jgg��S|jS)N�r�builtins��id�ctx�
annotation�type_comment�filter��value�attrr&)�ifsr�Lambda�	arguments�Name�targetr%�Param�len�BoolOp�And�	Attribute�Load�Call�iter)r�gen�ldFilter�ifilterNames    r�
make_Iteratorz#ComprehensionPatterns.make_Iterator,s	���7�	��z��
�s�x��
�
�s�y�{�{�(,�d� 4� 4�5� �$��B��b�:�:��s�w�<�<�!�#�#��
�3�7�9�9�c�g�.�.�.�),����5�5�H��-��h�*�#&�8�:�:�*.�T�C�C�C��3�8�:�:�	/�/�/�K�
�8�K�(�C�H�)=�r�B�B�B��8�Orc	���|�jv�r�d�_��|���fd�|jD��}d�|jD��}t	|��dkr+|d}tj|dggdggdg��}�n
d�_tjtj	td��tj��dd���dtj���	��}|dj}d
�t|��D��}	t||	���|j��|_tj||g��}tjtj	|tj��dd��ggdggdg��}|j}
tj||
��}|||��S��|��S)NTc�:��g|]}��|����S�)r=)�.0r:rs  �r�
<listcomp>z3ComprehensionPatterns.visitComp.<locals>.<listcomp>Cs'���H�H�H��T�'�'��,�,�H�H�Hrc�r�g|]4}tj|jjtj��dd����5Sr)rr0r1r%r2)rAr:s  rrBz3ComprehensionPatterns.visitComp.<locals>.<listcomp>DsB��5�5�5� ���#�*�-�����d�D�I�I�5�5�5rr"rrr$�productr*c�&�i|]\}}|j|f��Sr@)r%)rA�i�vs   r�
<dictcomp>z3ComprehensionPatterns.visitComp.<locals>.<dictcomp>Us"��I�I�I�D�A�q�Q�T�A�4�I�I�Ir)�optimizable_comprehension�updater�
generatorsr3rr/rr6r0rr7r%�	enumerater�visit�eltr8r2r.)rr�	make_attr�iters�	variables�iterAST�varAST�prodName�varid�	renamings�	ldBodymap�ldmaps`           r�	visitCompzComprehensionPatterns.visitComp=s�����4�1�1�1��D�K����t�$�$�$�H�H�H�H���H�H�H�E�5�5�$(�O�5�5�5�I��5�z�z�Q�����(����	�!��~�r�'+�R��T�2�?�?���&*��"��=��(�f�[�&9�&9�'*�x�z�z�.2��G�G�G�#���
�
�	4�4�4��"�!����I�I�I�i�4H�4H�I�I�I�	�)�%��;�;�A�A�$�(�K�K����(�8�U�B�7�7��������	���15�t�)=�)=�(>�')�4��R��r�C�C����I��J�v�y�1�1�E��9�U�G�,�,�,��%�%�d�+�+�+rc	��d�}t|jtj���r!t	|j��dk�r|jd}|js�t|jtj��r�	t|jj
��d}d}||kr�t	|jj��dkrd|_tj
tj|jgtj����tj��tjt#d��|jgg����Sn#t$$rYnwxYw|�||��S)Nc
��tjtjdtj��dd���dtj�����}tj|t|��g��}tjtjtjdtj��dd��dtj����|gg��}|S)Nr#r$�mapr*�list)rr6r0r7r8r])�args�rs  r�makeattrz6ComprehensionPatterns.visit_ListComp.<locals>.makeattres����
��h�*�#&�8�:�:�*.�,0�2�2�2����
�
�,�,�,�A����D��J�J��+�+�A�����s�x�
�C�H�J�J�04�d�(<�(<�'-�s�x�z�z�;�;���b�"�"�A��Hrr"r)�pythonicr#�functor�rangeT)r#r3)�
isinstancerNr�Constantr3rKr-r9r8r�funcr^rJ�BinOp�Listr7�Multr�	TypeErrorrY)rrr`r:�path�
range_paths      r�visit_ListCompz$ComprehensionPatterns.visit_ListCompdsC��	�	�	��d�h���-�-�	�#�d�o�2F�2F�!�2K�2K��/�!�$�C��7�

�z�#�(�C�H�=�=�

��'���
�6�6�q�9�D�!K�J��z�)�)�c�#�(�-�.@�.@�A�.E�.E�&*���"�y��H�d�h�Z�����<�<��H�J�J��H�\�2E�%F�%F�&)�h�Z�%'�)�)� *� *�*���!�����D������~�~�d�H�-�-�-s�1CD5�5
E�Ec�4�d�}|�||��S)Nc
���tjtjtjdtj��dd���dtj�����t|��g��S)Nr#r$r\r*)rr8r6r0r7r])r^s rr`z:ComprehensionPatterns.visit_GeneratorExp.<locals>.makeattr�sj���8�C�M��h�*�#&�8�:�:�*.�T�C�C�C����
�
�	,�,�,�.2�$�Z�Z��	=�=�
=r)rY)rrr`s   r�visit_GeneratorExpz(ComprehensionPatterns.visit_GeneratorExp�s'��	=�	=�	=��~�~�d�H�-�-�-rN)
�__name__�
__module__�__qualname__�__doc__r
r r=rYrmrpr@rrr
r

s}��������"@�@�@�������"%,�%,�%,�N .� .� .�D.�.�.�.�.rr
)rt�pythran.analysesr�pythran.passmanagerr�(pythran.transformations.normalize_tuplesr�pythran.conversionr�
pythran.utilsrr�gastrr
r@rr�<module>r{s���N�N�5�5�5�5�5�5�.�.�.�.�.�.�C�C�C�C�C�C�%�%�%�%�%�%�4�4�4�4�4�4�4�4�����@.�@.�@.�@.�@.�N�@.�@.�@.�@.�@.r

Youez - 2016 - github.com/yon3zu
LinuXploit