§
    ÷yIfe  ã                  ó–   — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ erd d	lmZ  G d
„ de	¦  «        Zdd„ZdS )é    )ÚannotationsN)Ú	TokenInfo)ÚTYPE_CHECKING)Únodes)ÚBaseTokenChecker)Úonly_required_for_messages)ÚHIGH)ÚPyLinterc                  ór   ‡ — e Zd ZdZdZddiZdˆ fd	„Zdd
„Zdd„Zdd„Z	 e
d¦  «        dd„¦   «         Zˆ xZS )ÚElseifUsedCheckerz9Checks for use of "else if" when an "elif" could be used.Úelse_if_usedÚR5501)zQConsider using "elif" instead of "else" then "if" to remove one indentation levelúelse-if-usedz…Used when an else statement is immediately followed by an if statement and does not contain statements that would be unrelated to it.Úlinterr
   ÚreturnÚNonec                ór   •— t          ¦   «                              |¦  «         |                      ¦   «          d S ©N)ÚsuperÚ__init__Ú_init)Úselfr   Ú	__class__s     €úP/var/www/piapp/venv/lib/python3.11/site-packages/pylint/extensions/check_elif.pyr   zElseifUsedChecker.__init__#   s,   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø�
Š
‰Œˆˆˆó    c                ó   — i | _         d S r   ©Ú_elifs)r   s    r   r   zElseifUsedChecker._init'   s   € Ø57ˆŒˆˆr   Útokensúlist[TokenInfo]c                ó(   — d„ |D ¦   «         | _         dS )z+Process tokens and look for 'if' or 'elif'.c                ó(   — i | ]\  }}}}}|d v ¯||“ŒS )>   ÚifÚelif© )Ú.0Ú_ÚtokenÚbegins       r   ú
<dictcomp>z4ElseifUsedChecker.process_tokens.<locals>.<dictcomp>,   s5   € ð 
ð 
ð 
Ù2˜Q  u¨a°ÀÈÐ@WÐ@WˆE�5Ð@WÐ@WÐ@Wr   Nr   )r   r   s     r   Úprocess_tokensz ElseifUsedChecker.process_tokens*   s&   € ð
ð 
Ø6<ð
ñ 
ô 
ˆŒˆˆr   r'   únodes.Modulec                ó.   — |                       ¦   «          d S r   )r   )r   r'   s     r   Úleave_modulezElseifUsedChecker.leave_module0   s   € Ø�
Š
‰Œˆˆˆr   r   Únodeúnodes.Ifc                ó  — t          |j        t          j        ¦  «        rb|j        j        |gk    rS|j        |j        f| j        v r@| j        |j        |j        f         dk    r%|                      d|t          ¬¦  «         dS dS dS dS dS )z/Current if node must directly follow an 'else'.r#   r   )r/   Ú
confidenceN)
Ú
isinstanceÚparentr   ÚIfÚorelseÚlinenoÚ
col_offsetr   Úadd_messager	   )r   r/   s     r   Úvisit_ifzElseifUsedChecker.visit_if3   s�   € õ �t”{¥E¤HÑ-Ô-ð	Ià”Ô" t fÒ,Ð,Ø”˜dœoÐ.°$´+Ð=Ð=Ø”˜Tœ[¨$¬/Ð:Ô;¸tÒCÐCà×Ò˜^°$Å4ÐÑHÔHÐHÐHÐHð	Ið 	Ià,Ð,Ø=Ð=ØCÐCr   ©r   r
   r   r   )r   r   )r   r    r   r   )r'   r,   r   r   )r/   r0   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚmsgsr   r   r+   r.   r   r:   Ú__classcell__)r   s   @r   r   r      sÇ   ø€ € € € € ØCÐCà€Dàð 
ð€Dðð ð ð ð ð ð8ð 8ð 8ð 8ð
ð 
ð 
ð 
ðð ð ð ð  Ð Ñ/Ô/ðIð Ið Iñ 0Ô/ðIð Ið Ið Ið Ir   r   r   r
   r   r   c                óJ   — |                       t          | ¦  «        ¦  «         d S r   )Úregister_checkerr   )r   s    r   ÚregisterrE   ?   s%   € Ø
×ÒÕ-¨fÑ5Ô5Ñ6Ô6Ð6Ð6Ð6r   r;   )Ú
__future__r   Útokenizer   Útypingr   Úastroidr   Úpylint.checkersr   Úpylint.checkers.utilsr   Úpylint.interfacesr	   Úpylint.lintr
   r   rE   r%   r   r   ú<module>rN      sú   ðð
 #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø <Ð <Ð <Ð <Ð <Ð <Ø "Ð "Ð "Ð "Ð "Ð "àð %Ø$Ð$Ð$Ð$Ð$Ð$ð'Ið 'Ið 'Ið 'Ið 'IÐ(ñ 'Iô 'Ið 'IðT7ð 7ð 7ð 7ð 7ð 7r   