
    eU                        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y)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)PyLinterc                   g }|dk(  rLd| j                   d   fd| j                   d   fg}|r#d|j                   d   fd|j                   d   fg}n}ddg}nx|dk(  rsd| j                  fd| j                  fd	| j                  fd
| j                  fg}|r7d|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        |	      }|j                  |d   j                  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)stats	old_stats	stat_typelinesnewoldindexvalue	new_value	old_valuediff_strnew_strold_strs                :/usr/lib/python3/dist-packages/pylint/checkers/__init__.pytable_lines_from_statsr/   ;   s    E&&"E$:$:;P$QR*&&'AB.
  *../DE
 /../IJ	8C 12TUC	o	%5++,(&ekk"	
 y334Y//0I--.)//*	CC "# 
Ou!H	JqM	 )U+ 	9- 	
 )39e(DYsO#i.(29e(DYsO#i.eAh&&sC0'7HMN
O L    c                *    t        | t        d          y)z0Initialize linter with checkers in this package.r   N)r   __path__)linters    r.   
initializer4      s    VXa[)r0   )r   r   r   r4   r	   r   N)r!   r
   r"   zLinterStats | Noner#   z,Literal['duplicated_lines', 'message_types']returnz	list[str])r3   r   r5   None)__doc__
__future__r   typingr   r   pylint.checkers.base_checkerr   r   r   pylint.checkers.deprecatedr	   pylint.utilsr
   r   r   pylint.lintr   r/   r4   __all__ r0   r.   <module>r@      si   
$L # ) 
 7 C C$AA!A <A 	AH*
r0   