o
    g                     @   s   d dl Z d dlmZmZmZmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ er6d dlmZ ee ZeZG dd	 d	ZdS )
    N)IOTYPE_CHECKINGAnyAnyStrCallableListOptional)	IReporter)Message)BaseReporter)CheckerStats)Sectionc                   @   s  e Zd ZdZeZdZdZ	d)dee	 de
g df dee fdd	Zd*ddZed
efddZed
ee fddZejded
dfddZded
dfddZd)dee d
dfddZd+ded
dfddZd,ddZded d
dfdd Zd!ed"ee d
dfd#d$Zd%ed&ed
dfd'd(ZdS )-MultiReporterz*Reports messages and layouts in plain text_internal_multi_reporter Nsub_reportersclose_output_filesoutputc                 C   s0   || _ || _t tj | _d | _| | d S N)_sub_reportersr   osgetcwdsep_path_strip_prefix_linter
set_output)selfr   r   r    r   ]/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pylint/reporters/multi_reporter.py__init__!   s
   zMultiReporter.__init__returnc                 C   s   |    d S r   )r   r   r   r   r   __del__/   s   zMultiReporter.__del__c                 C      | j S r   )r   r!   r   r   r   path_strip_prefix2      zMultiReporter.path_strip_prefixc                 C   r#   r   )r   r!   r   r   r   linter6   r%   zMultiReporter.lintervaluec                 C   s   || _ | jD ]}||_qd S r   )r   r   r&   )r   r'   repr   r   r   r&   :   s   
msgc                 C      | j D ]}|| qdS )z3Handle a new message triggered on the current file.N)r   handle_message)r   r)   r(   r   r   r   r+   @      
zMultiReporter.handle_messagec                 C   s   |durt ddS )zset output streamNz-MultiReporter does not support direct output.)NotImplementedError)r   r   r   r   r   r   F   s   zMultiReporter.set_outputstringc                 C   r*   )z!write a line in the output bufferN)r   writeln)r   r.   r(   r   r   r   r/   N   r,   zMultiReporter.writelnlayoutr   c                 C   r*   )z/display results encapsulated in the layout treeN)r   display_reportsr   r0   r(   r   r   r   r1   S   r,   zMultiReporter.display_reportsc                 C   r*   )z0hook for displaying the messages of the reporterN)r   display_messagesr2   r   r   r   r3   X   r,   zMultiReporter.display_messagesmodulefilepathc                 C      | j D ]}||| qdS )z/hook called when a module starts to be analysedN)r   on_set_current_module)r   r4   r5   r(   r   r   r   r7   ]   s   
z#MultiReporter.on_set_current_modulestatsprevious_statsc                 C   r6   )z,hook called when a module finished analyzingN)r   on_close)r   r8   r9   r(   r   r   r   r:   b   s   
zMultiReporter.on_closer   )r    N)r   )r0   r   r    N)__name__
__module____qualname____doc__r	   __implements__name	extensionr   r   r   r   AnyFiler   r"   propertystrr$   PyLinterr&   setterr
   r+   r   r/   r1   r3   r7   r   r:   r   r   r   r   r      sB    



r   )r   typingr   r   r   r   r   r   r   pylint.interfacesr	   pylint.messager
   pylint.reporters.base_reporterr   pylint.typingr   pylint.reporters.ureports.nodesr   rB   rE   r   r   r   r   r   <module>   s   $