bgxdZddlmZddlmZddlmZddlmZerddl m Z Gddej Z dd Z dS)zELooks for try/except statements with too much code in the try clause.) annotations) TYPE_CHECKING)nodes)checkers)PyLintercFeZdZdZdZddiZddddd d ffZddZddZeZ dS)BroadTryClauseCheckerzChecks for try clauses with too many lines. According to PEP 8, ``try`` clauses shall contain the absolute minimum amount of code. This checker enforces a maximum number of statements within ``try`` clauses. broad_try_clauseW0717)z%stoo-many-try-statementsz(Try clause contains too many statements.zmax-try-statementsintzz4Maximum number of statements allowed in a try clause)defaulttypemetavarhelptry_node"nodes.TryExcept | nodes.TryFinallyreturnct|j}|jD]V}t|tjtjtjtjfr|||z }W|SN) lenbody isinstancerForIfWhileWith_count_statements)selfrstatement_count body_nodes s/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/pylint/extensions/broad_try_clause.pyrz'BroadTryClauseChecker._count_statements1sghm,,! E EI)ei5; %STT E4#9#9)#D#DDnodeNonec||}||jjjkr7d|d|jjj}|d|j||dSdS)Nztry clause contains z statements, expected at most r )r%args)rlinterconfigmax_try_statements add_messagelineno)r r%try_clause_statementsmsgs r#visit_tryexceptz%BroadTryClauseChecker.visit_tryexcept:s $ 6 6t < < 4;#5#H H HA'<AA+>AA    )4;T       I Hr$N)rrrr)r%rrr&) __name__ __module__ __qualname____doc__namemsgsoptionsrr0visit_tryfinallyr$r#r r s D  D !"N     G    'r$r r)rrr&cJ|t|dSr)register_checkerr )r)s r#registerr<Hs% 1&99:::::r$N)r)rrr&)r4 __future__rtypingrastroidrpylintr pylint.lintr BaseCheckerr r<r9r$r#rCs LK"""""" %$$$$$$2'2'2'2'2'H02'2'2'j;;;;;;r$