1jw d dl mZ d dlmZ d dlmZ d Z G d de ZdefdZ defd Z G d d Z G d d Z G d d Z defdZ G d d ZdS ) )List)UnknownMessageError)PyLinterc | d }t | }| d dd D ]}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_classr sk IIcNNE;A$$QRR( ArNNAuQx EL c e Zd Zd Zd ZdS ) NoSuchCheckerc d|z | _ d S )NzChecker class %s was not foundmessage)self checker_classs r __init__zNoSuchChecker.__init__ s 7-Gr c | j S Nr r s r __repr__zNoSuchChecker.__repr__ s |r N)__name__ __module____qualname__r r r r r r s5 H H H r r linterc v | D ]}t || r|c S t | r )get_checkers isinstancer )r% r checkers r get_checkerr* sK &&(( g}-- NNN & &&r c t | |j j }n8# t $ r+ t | t |j |j }Y nw xY wt ||j }t ||j t || 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__AttributeErrorr r" r# r r! setattrAugmentFunc)r% checker_methodaugmentationr) old_methods r augment_visitr4 s fn&=&GHH In79TUU ."9::JG^,k*l.S.STTTTTs 2AAc e Zd Zd Zd ZdS )r0 c " || _ || _ d S r )r3 augmentation_func)r r3 r7 s r r zAugmentFunc.__init__7 s $!2r c X | t | j | | d S r )r7 Chainr3 )r nodes r __call__zAugmentFunc.__call__; s* uT_d;;TBBBBBr Nr! r" r# r r; r$ r r r0 r0 6 s7 3 3 3C C C C Cr r0 c e Zd Zd Zd ZdS )r9 c " || _ || _ d S r r3 r: )r r3 r: s r r zChain.__init__@ s $ r c : | | j d S r r? r s r r; zChain.__call__D s """""r Nr<