bg dZddlmZddlmZmZddlZddlmZmZddl m Z ddl m Z ddl mZerdd lmZGd d e jZddZdS)z!Looks for overlapping exceptions.) annotations) TYPE_CHECKINGAnyN)nodesutil)checkers)utils)_annotated_unpack_infer)PyLintercVeZdZdZdZddiZdZejdd d Z d S)OverlappingExceptionsCheckerzChecks for two or more exceptions in the same exception handler clause that are identical or parts of the same inheritance hierarchy. (i.e. overlapping). zoverlap-exceptW0714)zOverlapping exceptions (%s)overlapping-exceptz8Used when exceptions in handler overlap or are identicalrnodenodes.TryExceptreturnNonec |jD]}|j t|jtjr+ t t |j}n#tj$rY_wxYwg}|D]i\}}t|tj r!t|tj rtj |r|j }t|tjsqd|D}|D]\}} d| D} || krH|d|j|d|dq| |vs|| vrV|| vr|n|} | |vr|n|} |d|j| d| |||fgz }kdS) zCheck for empty except.NcFg|]}t|tj|Sr isinstanceastroidClassDef.0ancs y/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/pylint/extensions/overlapping_exceptions.py z@OverlappingExceptionsChecker.visit_tryexcept..>s:!!!jgFV6W6W!!!!cFg|]}t|tj|Srrrs rrz@OverlappingExceptionsChecker.visit_tryexcept..Cs;***%c7+;<<****r rz and z are the same)rargsz is an ancestor class of )handlerstyperrBoolOplistr InferenceErrorrUninferableBaseInstancer inherit_from_std_ex_proxiedr ancestors add_message as_string) selfrhandlerexcshandled_in_clausepartexc exc_ancestors prev_partprev_excprev_exc_ancestorsancestor descendants rvisit_tryexceptz,OverlappingExceptionsChecker.visit_tryexcept'sp}, 3, 3G|#',77  3GLAABB)    8: !! 3! 3 cc4#788c7#344'9RSV9W9W',C!#w'788!!#&==??!!! ,='Ix**#+#5#5#7#7***& h((0!($-$7$7$9$9!_!_@P@P!_!_!_) "]22c=O6O6O+.2D+D+D44)-5-F-FTTI ((0!($,$6$6$8$8!k!kS]SgSgSiSi!k!k) "tSk]2!!C! 3, 3, 3s!AA('A(N)rrrr) __name__ __module__ __qualname____doc__namemsgsoptionsr only_required_for_messagesr;rr rr r sh D  DG%U%&:;;.3.3.3<;.3.3.3r r linterr rrcJ|t|dS)N)register_checkerr )rDs rregisterrGYs% 8@@AAAAAr )rDr rr)r? __future__rtypingrrrrrpylintrpylint.checkersr pylint.checkers.exceptionsr pylint.lintr BaseCheckerr rGrr rrOs ('""""""%%%%%%%%!!!!!!>>>>>>%$$$$$$@3@3@3@3@38#7@3@3@3FBBBBBBr