bg[ddlmZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z erdd lmZGd d e ZddZdS)) annotationsN) TokenInfo) TYPE_CHECKING)nodes)BaseTokenChecker)only_required_for_messages)HIGH)PyLintercreZdZdZdZddiZdfd Zdd Zdd ZddZ e dddZ xZ S)ElseifUsedCheckerz9Checks for use of "else if" when an "elif" could be used. else_if_usedR5501)zQConsider using "elif" instead of "else" then "if" to remove one indentation level else-if-usedzUsed when an else statement is immediately followed by an if statement and does not contain statements that would be unrelated to it.linterr returnNonecrt||dSN)super__init___init)selfr __class__s m/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/pylint/extensions/check_elif.pyrzElseifUsedChecker.__init__#s,     ci|_dSr_elifs)rs rrzElseifUsedChecker._init's 57 rtokenslist[TokenInfo]c(d|D|_dS)z+Process tokens and look for 'if' or 'elif'.c(i|]\}}}}}|dv ||S)>ifelif).0_tokenbegins r z4ElseifUsedChecker.process_tokens..,s5   2Qua@W@WE5@W@W@WrNr)rrs rprocess_tokensz ElseifUsedChecker.process_tokens*s&  6<    rr' nodes.Modulec.|dSr)r)rr's r leave_modulezElseifUsedChecker.leave_module0s rrnodenodes.Ifct|jtjrb|jj|gkrS|j|jf|jvr@|j|j|jfdkr%|d|tdSdSdSdSdS)z/Current if node must directly follow an 'else'.r#r)r/ confidenceN) isinstanceparentrIforelselineno col_offsetr add_messager )rr/s rvisit_ifzElseifUsedChecker.visit_if3s t{EH - - I "tf,,do.$+== T[$/:;tCC   ^$4  H H H H H  I I,,==CCrrr rr)rr)rr rr)r'r,rr)r/r0rr) __name__ __module__ __qualname____doc__namemsgsrrr+r.rr: __classcell__)rs@rr r sCC D  D8888     //III0/IIIIIrr rr rrcJ|t|dSr)register_checkerr )rs rregisterrE?s% -f5566666rr;) __future__rtokenizertypingrastroidrpylint.checkersrpylint.checkers.utilsrpylint.interfacesr pylint.lintr r rEr%rrrNs #""""" ,,,,,,<<<<<<""""""%$$$$$$'I'I'I'I'I('I'I'IT777777r