Your IP : 18.227.46.54
�
j f
� @ s� d Z d d l m Z d d l m Z d d l m Z d d l m Z m Z m Z m
Z
m Z m Z d d � Z
Gd d � d e j � Z d
S)a� Fixer for except statements with named exceptions.
The following cases will be converted:
- "except E, T:" where T is a name:
except E as T:
- "except E, T:" where T is not a name, tuple or list:
except E as t:
T = t
This is done because the target of an "except" clause must be a
name.
- "except E, T:" where T is a tuple or list literal:
except E as t:
T = t.args
� )�pytree)�token)�
fixer_base)�Assign�Attr�Name�is_tuple�is_list�symsc c sb x[ t | � D]M \ } } | j t j k r
| j d j d k rZ | | | d f VqZ q
q
Wd S)N� �exceptr )� enumerate�typer
�
except_clause�children�value)Znodes�i�n� r �=/opt/alt/python34/lib64/python3.4/lib2to3/fixes/fix_except.py�find_excepts s r c @ s( e Z d Z d Z d Z d d � Z d S)� FixExceptTa1
try_stmt< 'try' ':' (simple_stmt | suite)
cleanup=(except_clause ':' (simple_stmt | suite))+
tail=(['except' ':' (simple_stmt | suite)]
['else' ':' (simple_stmt | suite)]
['finally' ':' (simple_stmt | suite)]) >
c C s | j } d d � | d D� } d d � | d D� } x�t | � D]�\ } } t | j � d k rD | j d d � \ } } }
| j t d d d
�� |
j t j k r�t | j � d d
�} |
j
� } d | _ |
j | � | j
� } | j }
x0 t |
� D]"