o
    g                     @   s   d dl Z d dlmZmZmZmZmZ d dlmZm	Z	 d dl
mZ d dlmZ dedefdd	Zded
efddZded
efddZdS )    N)DefaultDictDictListTupleUnion)checkers
exceptions)Table)CheckerStatsstatsprevious_statsc                 C   s2   g d}|t ||d7 }| t|ddd dS )z#make total errors / warnings report)typenumberprevious
difference)
conventionrefactorwarningerror      childrencolsrheadersN)r   table_lines_from_statsappendr	   )sectr   r   lines r   Z/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pylint/lint/report_functions.pyreport_total_messages_stats   s
   r!   _c                 C   st   |d st  |d }tdd | D }|  ddg}|D ]\}}||t|g7 }q!| t|ddd d	S )
zmake messages type reportby_msgc                 s   s&    | ]\}}| d s||fV  qdS )IN)
startswith).0msg_idvaluer   r   r    	<genexpr>#   s    
z(report_messages_stats.<locals>.<genexpr>z
message idoccurrences   r   r   N)r   EmptyReportErrorsorteditemsreversestrr   r	   )r   r   r"   by_msg_statsin_orderr   r(   r'   r   r   r    report_messages_stats   s   r3   c                 C   sL  |d }t |dkrt tt}dD ]'}|| }| D ]}|| | }|dkr-dnt|d | }	|	|| |< qqg }
| D ]\}}|
	|d |d |d |d	 |f qC|

  |
  g d
}|
D ]'}tdd |dd D rxqh|	|d  |dd D ]	}|	|d qqht |dkrt | 	t|ddd dS )z(make errors / warnings by modules report	by_moduler   )fatalr   r   r   r   r   d   r   r   r   r   )moduler   r   r   r   c                 s   s    | ]}|d kV  qdS )r   Nr   )r&   entryr   r   r    r)   R   s    z2report_messages_by_module_stats.<locals>.<genexpr>Nz.2f   r   )lenr   r,   collectionsdefaultdictdictkeysfloatr.   r   sortr/   allr	   )r   r   r"   module_statsby_modm_typetotalr7   	mod_totalpercentsorted_resultmod_infor   linevalr   r   r    report_messages_by_module_stats/   sH   	rM   )r<   typingr   r   r   r   r   pylintr   r   pylint.reporters.ureports.nodesr	   pylint.typingr
   r!   r3   rM   r   r   r   r    <module>   s(   

