§
    ÷yIf   ã                  óv   — 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 )é    )Úannotations)ÚTYPE_CHECKING)Únodes)ÚBaseChecker)Úonly_required_for_messages)ÚPyLinterc                  ó`   — e Zd ZdZdZddiZ ed¦  «        dd
„¦   «         Zedd„¦   «         Z	dS )ÚConfusingConsecutiveElifCheckerziChecks if "elif" is used right after an indented block that finishes with "if" or
    "elif" itself.
    Úconfusing_elifÚR5601)zjConsecutive elif with differing indentation level, consider creating a function to separate the inner elifúconfusing-consecutive-elifa  Used when an elif statement follows right after an indented block which itself ends with if or elif. It may not be ovious if the elif statement was willingly or mistakenly unindented. Extracting the indented if statement into a separate function might avoid confusion and prevent errors.r   Únodeúnodes.IfÚreturnÚNonec                ó  — t          |j        d         t          j        ¦  «        o|                      |j        d         ¦  «        }|                     ¦   «         r&|r&|                      d|j        d         ¬¦  «         d S d S d S )Néÿÿÿÿr   r   )r   )Ú
isinstanceÚbodyr   ÚIfÚ_has_no_else_clauseÚhas_elif_blockÚadd_messageÚorelse)Úselfr   Úbody_ends_with_ifs      úT/var/www/piapp/venv/lib/python3.11/site-packages/pylint/extensions/confusing_elif.pyÚvisit_ifz(ConfusingConsecutiveElifChecker.visit_if$   s›   € å&ØŒI�bŒM�5œ8ñ
ô 
ð 6à×&Ò& t¤y°¤}Ñ5Ô5ð 	ð ×ÒÑ Ô ð 	PÐ%6ð 	PØ×ÒÐ9ÀÄÈAÄÐÑOÔOÐOÐOÐOð	Pð 	Pð 	Pð 	Pó    Úboolc                óþ   — | j         }|rOt          |d         t          j        ¦  «        r/|d         j         }|r t          |d         t          j        ¦  «        °/|r t          |d         t          j        ¦  «        rdS dS )Nr   TF)r   r   r   r   )r   r   s     r   r   z3ConfusingConsecutiveElifChecker._has_no_else_clause,   s~   € à”ˆØð 	&� F¨1¤I­u¬xÑ8Ô8ð 	&Ø˜A”YÔ%ˆFð ð 	&� F¨1¤I­u¬xÑ8Ô8ð 	&àð 	� F¨1¤I­u¬xÑ8Ô8ð 	Ø�4Øˆur   N)r   r   r   r   )r   r   r   r    )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚmsgsr   r   Ústaticmethodr   © r   r   r
   r
      s…   € € € € € ðð ð €Dàð 
ð
€Dð  ÐÐ <Ñ=Ô=ðPð Pð Pñ >Ô=ðPð ðð ð ñ „\ðð ð r   r
   Úlinterr   r   r   c                óJ   — |                       t          | ¦  «        ¦  «         d S )N)Úregister_checkerr
   )r*   s    r   Úregisterr-   6   s%   € Ø
×ÒÕ;¸FÑCÔCÑDÔDÐDÐDÐDr   N)r*   r   r   r   )Ú
__future__r   Útypingr   Úastroidr   Úpylint.checkersr   Úpylint.checkers.utilsr   Úpylint.lintr   r
   r-   r)   r   r   ú<module>r4      sÊ   ðð
 #Ð "Ð "Ð "Ð "Ð "à  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø <Ð <Ð <Ð <Ð <Ð <àð %Ø$Ð$Ð$Ð$Ð$Ð$ð!ð !ð !ð !ð ! kñ !ô !ð !ðHEð Eð Eð Eð Eð Er   