§
    ZQd  ã                   óz   — 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„ Z G 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              #   ó¨   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ØŒ6•TÔ'Ò'Ð'ØŒ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Ð3˜a�—’‘	”	Ð3Ð3Ð3r   Útailc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   r   )r!   Úchs     r   r"   z'FixExcept.transform.<locals>.<listcomp>4   s    € Ð?Ð?Ð? b�r—x’x‘z”zÐ?Ð?Ð?r   Úcleanupé   é   Úasú )ÚprefixÚ Úargsr   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   r   )r!   Úcs     r   r"   z'FixExcept.transform.<locals>.<listcomp>\   s    € Ð9Ð9Ð9 !�A—G’G‘I”IÐ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Ð3 7¨6¤?Ð3Ñ3Ô3ˆà?Ð?¨G°IÔ,>Ð?Ñ?Ô?ˆÝ&2°;Ñ&?Ô&?ð $	#ñ $	#Ñ"ˆM˜7Ý�=Ô)Ñ*Ô*¨aÒ/Ñ/Ø -Ô 6°q¸°sÔ ;‘��E˜1Ø—’�d 4°Ð4Ñ4Ô4Ñ5Ô5Ð5à”6�UœZÒ'Ñ'å  §¢¡¤¸Ð=Ñ=Ô=�EØŸWšW™YœY�FØ$&�F”MØ—I’I˜eÑ$Ô$Ð$Ø!ŸKšK™MœM�Eð #*Ô"2�KÝ#,¨[Ñ#9Ô#9ð "ð "™˜˜4Ý% d­F¬KÑ8Ô8ð "Ø!˜Eð"õ
   ‘{”{ð 7¥g¨a¡j¤jð 7Ý!'¨µ°U½DÀ¹L¼LÑ0IÔ0IÑ!JÔ!J˜˜å!'¨°Ñ!6Ô!6˜õ "*¨+°b°q°b¬/Ñ!:Ô!:ð 7ð 7˜Ø×,Ò,¨Q°Ñ6Ô6Ð6Ð6Ø×(Ò(¨¨FÑ3Ô3Ð3Ñ3Ø”X ’^�^ð  #�A”Hùð :Ð9 t¤}°R°a°RÔ'8Ð9Ñ9Ô9¸KÑGÈ$ÑNˆÝŒ{˜4œ9 hÑ/Ô/Ð/r   N)Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚPATTERNrG   r   r   r   r   r   $   s/   € € € € € Ø€Mð€Gð.0ð .0ð .0ð .0ð .0r   r   N)Ú__doc__r,   r   Úpgen2r   r   Ú
fixer_utilr   r   r   r	   r
   r   r   ÚBaseFixr   r   r   r   ú<module>rQ      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   