| 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 : |
�
cR�a0 � �n � d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl m
Z
mZ ddlZ
G d� d e� � ZdS )
zH Comprehension patterns transforms list comprehension into intrinsics. � )�OptimizableComprehension)�Transformation)�ConvertToTuple)�mangle)�attr_to_path�path_to_attrNc �6 � e Zd ZdZd� 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 �: � t j | t � � d S �N)r �__init__r )�selfs �N/usr/lib/python3/dist-packages/pythran/optimizations/comprehension_patterns.pyr
zComprehensionPatterns.__init__ s � ����&>�?�?�?�?�?� c �� � d| _ | � |� � | j rTt j dt d� � �� � }t j |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"