o !Qd @sd ddlmZddlmZddlmZddlmZmZmZm Z m Z m Z ddZ Gdddej Zd S) )pytree)token) fixer_base)AssignAttrNameis_tupleis_listsymsccsFt|D]\}}|jtjkr |jdjdkr |||dfVqdS)Nexceptr) enumeratetyper except_clausechildrenvalue)Znodesinr?/opt/alt/python310/lib64/python3.10/lib2to3/fixes/fix_except.py find_exceptss rc@seZdZdZdZddZdS) 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)]) > cCsr|j}dd|dD}dd|dD}t|D]\}}t|jdkr|jdd\}} } | tdd d | jtjkrt| d d } | } d | _ | | | } |j} t | D] \}}t |tjrhnq\t| sqt| r|t| t| td }nt| | }t| d|D]}|d |q|||q| j d krd | _ qdd|jddD||}t|j|S)NcSg|]}|qSrclone).0rrrr 2z'FixExcept.transform..tailcSrrr)rZchrrrr4rZcleanupas )prefixargsr cSrrr)rcrrrr\r)r rlenrreplacerrrNAMEnew_namerr#r isinstancerZNoderr rrreversedZ insert_child)selfZnodeZresultsr rZ try_cleanuprZe_suiteEZcommaNZnew_NtargetZ suite_stmtsrZstmtZassignchildrrrr transform/s:      zFixExcept.transformN)__name__ __module__ __qualname__Z BM_compatibleZPATTERNr3rrrrr$s rN)r$rZpgen2rrZ fixer_utilrrrrr r rZBaseFixrrrrrs