
    yIfU                        d Z ddlmZ ddlmZmZ ddlmZmZm	Z	 ddl
mZ ddlmZmZmZ erddlmZ ddZddZg dZdS )aO  Utilities methods and classes for checkers.

Base id of standard checkers (used in msg and report ids):
01: base
02: classes
03: format
04: import
05: misc
06: variables
07: exceptions
08: similar
09: design_analysis
10: newstyle
11: typecheck
12: logging
13: string_format
14: string_constant
15: stdlib
16: python3 (This one was deleted but needs to be reserved for consistency with old messages)
17: refactoring
.
.
.
24: non-ascii-names
25: unicode
26: unsupported_version
27: private-import
28-50: not yet used: reserved for future internal checkers.
This file is not updated. Use
   script/get_unused_message_id_category.py
to get the next free checker id.

51-99: perhaps used: reserved for external checkers

The raw_metrics checker has no number associated since it doesn't emit any
messages nor reports. XXX not true, emit a 07 report !
    )annotations)TYPE_CHECKINGLiteral)BaseCheckerBaseRawFileCheckerBaseTokenChecker)DeprecatedMixin)LinterStatsdiff_stringregister_plugins)PyLinterstatsr
   	old_statsLinterStats | None	stat_type,Literal['duplicated_lines', 'message_types']return	list[str]c                   g }|dk    rDd| j         d         fd| j         d         fg}|rd|j         d         fd|j         d         fg}nVddg}nQ|dk    rKd| j        fd| j        fd	| j        fd
| j        fg}|r#d|j        fd|j        fd	|j        fd
|j        fg}ng d}t          |          D ]\  }}|d         }||         d         }	t          |	t                    rt          |	|          n|	}
t          |t                    r|dnt          |          }t          |	t                    r|	dnt          |	          }|
                    |d                             dd          |||
f           |S )zGet values listed in <columns> from <stats> and <old_stats>,
    and return a formatted list of values.

    The return value is designed to be given to a ureport.Table object
    duplicated_linesnb_duplicated_linespercent_duplicated_lines)r   NC)r   r   message_types
conventionrefactorwarningerror))r   r   )r   r   )r   r   )r   r      z.3fr   _ )r   r   r   r   r   	enumerate
isinstancefloatr   strextendreplace)r   r   r   linesnewoldindexvalue	new_value	old_valuediff_strnew_strold_strs                L/var/www/piapp/venv/lib/python3.11/site-packages/pylint/checkers/__init__.pytable_lines_from_statsr3   ;   s    E&&&"E$:;P$QR*&'AB.
  	V *./DE
 /./IJ	8CC 12TUCC	o	%	%5+,(&ek"	
  	y34Y/0I-.)/*	CC  C "# 
O 
Ou!H	JqM	 )U++K	9--- 	
 )39e(D(DXY$$$#i..(29e(D(DXY$$$#i..eAh&&sC00'7HMNNNNL    linterr   Nonec                <    t          | t          d                    dS )z0Initialize linter with checkers in this package.r   N)r   __path__)r5   s    r2   
initializer9      s    VXa[)))))r4   )r   r   r   r9   r	   r   N)r   r
   r   r   r   r   r   r   )r5   r   r   r6   )__doc__
__future__r   typingr   r   pylint.checkers.base_checkerr   r   r   pylint.checkers.deprecatedr	   pylint.utilsr
   r   r   pylint.lintr   r3   r9   __all__ r4   r2   <module>rC      s   
$ $L # " " " " " ) ) ) ) ) ) ) )         
 7 6 6 6 6 6 C C C C C C C C C C %$$$$$$A A A AH* * * *
  r4   