← Back
Editing: simplify_except.cpython-311.pyc
� cR�at � �@ � d Z ddlmZ ddlZd� Z G d� de� � ZdS )z) Replaces **2 by a call to numpy.square. � )�TransformationNc � � t | t j � � rt | j � � | j fS t | t j � � r| j S | S )N)� isinstance�ast� Attribute�getid�value�attr�Name�id)�nodes �G/usr/lib/python3/dist-packages/pythran/optimizations/simplify_except.pyr r sM � ��$�� �&�&� ,��T�Z� � �$�)�+�+��$���!�!� ��w���K� c � � e Zd ZdZd� ZdS )�SimplifyExcepta Remove redundant except clauses >>> import gast as ast >>> from pythran import passmanager, backend >>> node = ast.parse('try: pass\nexcept (OSError, OSError): pass') >>> pm = passmanager.PassManager("test") >>> _, node = pm.apply(SimplifyExcept, node) >>> print(pm.dump(backend.Python, node)) try: pass except OSError: pass c �@ � t |j t j � � r�d� |j j D � � }g }t |j j � � D ]C\ }}t |� � }||v r|� |� � �.|� |� � �Dt |� � D ]!}|j j � |� � �"t |j j � � dk r|j j d |_ d| _ | xj t |� � z c_ |S )Nc �, � h | ]}t |� � ��S � )r )�.0�elts r � <setcomp>z5SimplifyExcept.visit_ExceptHandler.<locals>.<setcomp>! s � �<�<�<�c�u�S�z�z�<�<�<r � r T)r �typer �Tuple�elts� enumerater �remove�append�reversed�pop�len�update�bool)�selfr �all_ids� to_remove�ir �eltids r �visit_ExceptHandlerz"SimplifyExcept.visit_ExceptHandler s � ��d�i���+�+� +�<�<�T�Y�^�<�<�<�G��I�#�D�I�N�3�3� (� (���3��c� � ���G�#�#��N�N�5�)�)�)�)��$�$�Q�'�'�'�'��i�(�(� &� &��� ��"�"�1�%�%�%�%��4�9�>�"�"�a�'�'� �I�N�1�-�� �"����K�K�4� �?�?�*�K�K��r N)�__name__� __module__�__qualname__�__doc__r) r r r r r s- � � � � � � � �� � � � r r )r- �pythran.passmanagerr �gastr r r r r r �<module>r0 sl �� /� /� .� .� .� .� .� .� � � � �� � �!� !� !� !� !�^� !� !� !� !� !r
Save File
Cancel