1jwddlmZddlmZddlmZdZGddeZdefdZ defd Z Gd d Z Gd d Z GddZ defdZGddZdS))List)UnknownMessageError)PyLinterc|d}t|}|dddD]}t||}t||d}|S)N.r)split __import__getattr) module_nameklspartsmmpklasss n/builddir/build/BUILD/cloudlinux-venv-1.0.11/venv/lib/python3.11/site-packages/pylint_plugin_utils/__init__.py get_classrsk IIcNNE;A$$QRR( ArNN AuQx E LceZdZdZdZdS) NoSuchCheckercd|z|_dS)NzChecker class %s was not foundmessage)self checker_classs r__init__zNoSuchChecker.__init__s7-G rc|jSNrrs r__repr__zNoSuchChecker.__repr__s |rN)__name__ __module__ __qualname__rr rrrrs5HHHrrlintercv|D]}t||r|cSt|r) get_checkers isinstancer)r%rcheckers r get_checkerr*sK&&(( g} - - NNN   & &&rc  t||jj}n8#t$r+t|t |j|j}YnwxYwt||j}t||jt||dS)a Augmenting a visit enables additional errors to be raised (although that case is better served using a new checker) or to suppress all warnings in certain circumstances. Augmenting functions should accept a 'chain' function, which runs the checker method and possibly any other augmentations, and secondly an Astroid node. "chain()" can be called at any point to trigger the continuation of other checks, or not at all to prevent any further checking. N) r*__self__ __class__AttributeErrorrr"r#r r!setattr AugmentFunc)r%checker_method augmentationr) old_methods r augment_visitr4s fn&=&GHH     In79TUU   ."9::J G^,k*l.S.STTTTTs2AAceZdZdZdZdS)r0c"||_||_dSr)r3augmentation_func)rr3r7s rrzAugmentFunc.__init__7s$!2rcX|t|j||dSr)r7Chainr3)rnodes r__call__zAugmentFunc.__call__;s* uT_d;;TBBBBBrNr!r"r#rr;r$rrr0r06s7333CCCCCrr0ceZdZdZdZdS)r9c"||_||_dSrr3r:)rr3r:s rrzChain.__init__@s$ rc:||jdSrr?rs rr;zChain.__call__Ds  """""rNr<r$rrr9r9?s2#####rr9c,eZdZdZdZdZdZdZdS)Suppressc0||_g|_g|_dSr)_linter _suppress_messages_to_append)rr%s rrzSuppress.__init__Is #%   rcJ|jj|_|j|j_|Sr)rD add_message_orig_add_messagers r __enter__zSuppress.__enter__Ns!!%!9#'#3   rc>|j||fdSr)rFappend)rargskwargss rrHzSuppress.add_messageSs#  ''v77777rcD|D]}|j|dSr)rErL)rsymbolssymbols rsuppresszSuppress.suppressVs4 * *F N ! !& ) ) ) ) * *rc|j|j_|jD]'\}}|d|jvr|jj|i|(dS)Nr)rIrDrHrFrE)rexc_typeexc_valexc_tbto_append_argsto_append_kwargss r__exit__zSuppress.__exit__Zsh#'#9  040H J J ,N,a DN22 $DL $n I8H I I I I J JrN)r!r"r#rrJrHrRrYr$rrrBrBHsd&&&  888***JJJJJrrBc Ft||t|||dS)z This wrapper allows the suppression of a message if the supplied test function returns True. It is useful to prevent one particular message from being raised in one particular case, while leaving the rest of the messages intact. N)r4 DoSuppress)r%r1message_id_or_symbol test_funcs rsuppress_messager^bs4  63G S SrcBeZdZdefdZdZedefdZdZ dS)r[r%c0||_||_||_dSr)r%r\r])rr%r\r]s rrzDoSuppress.__init__ns $8!"rct|j5}||r|j|j|ddddS#1swxYwYdSr)rBr%r]rRrP)rchainr:ss rr;zDoSuppress.__call__ss dk " " a~~d## * DL)) EGGG                  s/AAAreturnc ||j}d|D}n#t$r |jg}YnwxYw|S)Nc8g|]}|j|jfD]}||Sr)msgidrQ).0pylint_messagerQs r z&DoSuppress.symbols..sJ"-3^5JK%&%%%r)get_message_definitionsr\r)rpylint_messages the_symbolss rrPzDoSuppress.symbolsyss 6"::4;TUUO&5KK # 6 6 6 45KKK 6 s &)>>c<t|jd|j}t|dr||gSt|dr||gSt|dr||Sd}t |)N msgs_storecheck_message_idget_message_definitionrkzKpylint.utils.MessagesStore does not have a get_message_definition(s) method)r r%hasattrrprqrk ValueError)rr\romsgs rrkz"DoSuppress.get_message_definitionssT[, DD :1 2 2 "//0DEEF FZ!9 : : "556JKKL LZ!: ; ; "556JKK K3 S// !rN) r!r"r#rrr;propertyrrPrkr$rrr[r[mst#x####  X8"""""rr[N)typingrpylint.exceptionsr pylint.lintrr Exceptionrr*r4r0r9rBr^r[r$rrrzs111111 I'''''U(UUUU.CCCCCCCC########JJJJJJJJ4X;";";";";";";";";";"r