§
    ZQd¿	  ã                   ó`   — 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dS )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                 óB   •—  t          t          | ¦  «        j        |Ž  d S ©N)Úsuperr   Ú__init__)ÚselfÚargsÚ	__class__s     €ú1/usr/lib/python3.11/lib2to3/fixes/fix_exitfunc.pyr   zFixExitfunc.__init__   s#   ø€ Ø)��k˜4Ñ Ô Ô)¨4Ð0Ð0Ð0Ð0ó    c                 óh   •— t          t          | ¦  «                             ||¦  «         d | _        d S 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         | _         d S |d                              ¦   «         }d|_        t          j        t
          j        t          t          d¦  «        t          d¦  «        ¦  «        ¦  «        }t          ||g|j        ¦  «        }| 
                    |¦  «         | j         €|                      |d¦  «         d S | j         j        d         }|j        t
          j        k    rF|                     t!          ¦   «         ¦  «         |                     t          dd¦  «        ¦  «         d S | j         j        }|j                             | j         ¦  «        }|j        }	t          j        t
          j        t          d	¦  «        t          dd¦  «        g¦  «        }
t          j        t
          j        |
g¦  «        }|                     |dz   t-          ¦   «         ¦  «         |                     |d
z   |¦  «         d S )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�”ØˆFà�vŒ×$Ò$Ñ&Ô&ˆØˆŒÝ”;�tœzÝ#¥D¨¡N¤NµD¸Ñ4DÔ4DÑEÔEñ!ô !ˆõ �H˜t˜f d¤kÑ2Ô2ˆØ�Š�TÑÔÐàŒ?Ð"à�LŠL˜ð  ?ñ @ô @ð @àˆFð ”Ô(¨Ô+ˆØŒ:�Ô-Ò-Ð-Ø×Ò�u™wœwÑ'Ô'Ð'Ø×Ò�t H¨cÑ2Ô2Ñ3Ô3Ð3Ð3Ð3à"œoÔ4ˆOØ&Ô/×5Ò5°d´oÑFÔFˆHØ,Ô3ˆNÝœ¥TÔ%5Ý# H™~œ~­t°H¸cÑ/BÔ/BÐCñ ô  ˆJõ ”+�dÔ.°°Ñ=Ô=ˆCØ×(Ò(¨°A©µw±y´yÑAÔAÐAØ×(Ò(¨°A©°sÑ;Ô;Ð;Ð;Ð;r   )
Ú__name__Ú
__module__Ú__qualname__Úkeep_line_orderÚBM_compatibleÚPATTERNr   r   r<   Ú__classcell__)r   s   @r   r   r      sq   ø€ € € € € Ø€OØ€Mð€Gð1ð 1ð 1ð 1ð 1ðð ð ð ð ð#<ð #<ð #<ð #<ð #<ð #<ð #<r   r   N)Ú__doc__Úlib2to3r   r   Úlib2to3.fixer_utilr   r   r   r   r	   r
   ÚBaseFixr   © r   r   ú<module>rI      s�   ððð ð 'Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ Eð=<ð =<ð =<ð =<ð =<�*Ô$ñ =<ô =<ð =<ð =<ð =<r   