
    ;e                     x    	 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 Z G d dej                  ZdS )	   )pytree)token)
fixer_base)AssignAttrNameis_tupleis_listsymsc              #      K   t          |           D ]?\  }}|j        t          j        k    r%|j        d         j        dk    r|| |dz            fV  @d S )N    exceptr   )	enumeratetyper   except_clausechildrenvalue)nodesins      //usr/lib/python3.11/lib2to3/fixes/fix_except.pyfind_exceptsr      sh      %   & &16T'''z!}"h..%!*o%%%& &    c                       e Zd ZdZdZ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           
      j   | j         }d |d         D             }d |d         D             }t          |          D ]\  }}t          |j                  dk    r|j        dd         \  }}	}
|	                    t          dd	                     |
j        t          j        k    rAt          | 	                                d	          }|

                                }d
|_        |
                    |           |
                                }|j        }t          |          D ]!\  }}t          |t          j                  r n"t!          |
          st#          |
          r,t%          |t'          |t          d                              }nt%          ||          }t)          |d |                   D ]}|                    d|           |                    ||           |
j        d
k    rd|
_        d |j        d d         D             |z   |z   }t          j        |j        |          S )Nc                 6    g | ]}|                                 S  clone).0r   s     r   
<listcomp>z'FixExcept.transform.<locals>.<listcomp>2   s     333a		333r   tailc                 6    g | ]}|                                 S r   r   )r!   chs     r   r"   z'FixExcept.transform.<locals>.<listcomp>4   s     ???brxxzz???r   cleanup      as )prefix argsr   c                 6    g | ]}|                                 S r   r   )r!   cs     r   r"   z'FixExcept.transform.<locals>.<listcomp>\   s     999!AGGII999r      )r   r   lenr   replacer   r   r   NAMEnew_namer    r+   r   
isinstancer   Noder	   r
   r   r   reversedinsert_child)selfnoderesultsr   r#   try_cleanupr   e_suiteEcommaNnew_Ntargetsuite_stmtsr   stmtassignchildr   s                      r   	transformzFixExcept.transform/   s2   y3376?333??GI,>???&2;&?&? $	# $	#"M7=)**a// - 6qs ;E1d44445556UZ'' ===EWWYYF$&FMIIe$$$!KKMME #*"2K#,[#9#9 " "4%dFK88 "!E"
  {{ 7gajj 7!'UDLL0I0I!J!J!'!6!6 "*+bqb/!:!: 7 7,,Q6666((F3333X^^  #AH :9t}RaR'8999KG$N{49h///r   N)__name__
__module____qualname__BM_compatiblePATTERNrG   r   r   r   r   r   $   s/        MG.0 .0 .0 .0 .0r   r   N)r,   r   pgen2r   r   
fixer_utilr   r   r   r	   r
   r   r   BaseFixr   r   r   r   <module>rP      s   0                   D D D D D D D D D D D D D D D D& & &90 90 90 90 90
" 90 90 90 90 90r   