Ë
    #´˜j¿	  ã                   ób   — d Z ddlmZmZ ddlmZmZmZmZm	Z	m
Z
  G d„ dej                  «      Zy)z7
Convert use of sys.exitfunc to use the atexit module.
é    )ÚpytreeÚ
fixer_base)ÚNameÚAttrÚCallÚCommaÚNewlineÚsymsc                   ó:   ‡ — e Zd ZdZdZdZˆ fd„Zˆ fd„Zd„ Zˆ xZ	S )ÚFixExitfuncTa”  
              (
                  sys_import=import_name<'import'
                      ('sys'
                      |
                      dotted_as_names< (any ',')* 'sys' (',' any)* >
                      )
                  >
              |
                  expr_stmt<
                      power< 'sys' trailer< '.' 'exitfunc' > >
                  '=' func=any >
              )
              c                 ó&   •— t        t        | �
  |Ž  y ©N)Úsuperr   Ú__init__)ÚselfÚargsÚ	__class__s     €ú,lib/python3.12/lib2to3/fixes/fix_exitfunc.pyr   zFixExitfunc.__init__   s   ø€ ÜŒk˜4Ñ)¨4Ò0ó    c                 ó<   •— t         t        | �  ||«       d | _        y r   )r   r   Ú
start_treeÚ
sys_import)r   ÚtreeÚfilenamer   s      €r   r   zFixExitfunc.start_tree!   s   ø€ ÜŒk˜4Ñ+¨D°(Ô;Øˆ�r   c           	      ó  — d|v r| j                   €
|d   | _         y |d   j                  «       }d|_        t        j                  t
        j                  t        t        d«      t        d«      «      «      }t        ||g|j                  «      }|j                  |«       | j                   €| j                  |d«       y | j                   j                  d   }|j                  t
        j                  k(  r5|j                  t!        «       «       |j                  t        dd«      «       y | j                   j"                  }|j                  j%                  | j                   «      }|j"                  }	t        j                  t
        j&                  t        d	«      t        dd«      g«      }
t        j                  t
        j(                  |
g«      }|j+                  |dz   t-        «       «       |j+                  |d
z   |«       y )Nr   ÚfuncÚ ÚatexitÚregisterzKCan't find sys import; Please add an atexit import at the top of your file.é   Ú Úimporté   )r   ÚcloneÚprefixr   ÚNoder
   Úpowerr   r   r   ÚreplaceÚwarningÚchildrenÚtypeÚdotted_as_namesÚappend_childr   ÚparentÚindexÚimport_nameÚsimple_stmtÚinsert_childr	   )r   ÚnodeÚresultsr   r   ÚcallÚnamesÚcontaining_stmtÚpositionÚstmt_containerÚ
new_importÚnews               r   Ú	transformzFixExitfunc.transform%   s”  € à˜7Ñ"Ø�‰Ð&Ø")¨,Ñ"7�”Øà�v‰×$Ñ$Ó&ˆØˆŒÜ—;‘;œtŸz™zÜ#¤D¨£N´D¸Ó4DÓEó!ˆô �H˜t˜f d§k¡kÓ2ˆØ�‰�TÔà�?‰?Ð"à�L‰L˜ð  ?ô @àð —‘×(Ñ(¨Ñ+ˆØ�:‰:œ×-Ñ-Ò-Ø×Ñœu›wÔ'Ø×Ñœt H¨cÓ2Õ3à"Ÿo™o×4Ñ4ˆOØ&×/Ñ/×5Ñ5°d·o±oÓFˆHØ,×3Ñ3ˆNÜŸ™¤T×%5Ñ%5Ü# H›~¬t°H¸cÓ/BÐCó ˆJô —+‘+œd×.Ñ.°°Ó=ˆCØ×(Ñ(¨°A©´w³yÔAØ×(Ñ(¨°A©°sÕ;r   )
Ú__name__Ú
__module__Ú__qualname__Úkeep_line_orderÚBM_compatibleÚPATTERNr   r   r<   Ú__classcell__)r   s   @r   r   r      s#   ø„ Ø€OØ€Mð€Gô1ôö#<r   r   N)Ú__doc__Úlib2to3r   r   Úlib2to3.fixer_utilr   r   r   r   r	   r
   ÚBaseFixr   © r   r   Ú<module>rI      s'   ðñ÷ 'ß E× Eô=<�*×$Ñ$õ =<r   