
    c                    :   d Z ddlmZ ddlZddlZddl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j        d	k    rdd
lmZ ndd
lmZ erddlmZ ddlmZ  edeeeeeee         ee         eeeed          Z G d de          Z G d de          ZddZdS )zJSON reporter.    )annotationsN)TYPE_CHECKINGOptional)	UNDEFINED)Message)BaseReporter)MessageLocationTuple)      )	TypedDict)PyLinter)SectionOldJsonExporttypemoduleobjlinecolumnendLine	endColumnpathsymbolmessage
message-idc                  b    e Zd ZdZdZdZddZdd	Zdd
Ze	dd            Z
e	dd            ZdS )BaseJSONReporterz$Report messages and layouts in JSON.jsonlayoutSection | NonereturnNonec                      fd j         D             }t          t          j        |d           j                   dS )zLaunch layouts display.c                :    g | ]}                     |          S  )	serialize).0r   selfs     >lib/python3.11/site-packages/pylint/reporters/json_reporter.py
<listcomp>z5BaseJSONReporter.display_messages.<locals>.<listcomp>6   s%    NNNW00NNN       )indent)fileN)messagesprintr   dumpsout)r(   r   json_dumpables   `  r)   display_messagesz!BaseJSONReporter.display_messages4   sH    NNNNNNNdjq111AAAAAAr+   r   c                    dS )z#Don't do anything in this reporter.Nr%   r(   r   s     r)   display_reportsz BaseJSONReporter.display_reports9         r+   c                    dS )zDo nothing.Nr%   r6   s     r)   _displayzBaseJSONReporter._display<   r8   r+   r   r   r   c                    t           NNotImplementedErrorr   s    r)   r&   zBaseJSONReporter.serialize?       !!r+   message_as_jsonc                    t           r<   r=   rA   s    r)   deserializezBaseJSONReporter.deserializeC   r@   r+   N)r   r    r!   r"   )r   r   r!   r"   r   r   r!   r   rA   r   r!   r   )__name__
__module____qualname____doc__name	extensionr4   r7   r:   staticmethodr&   rD   r%   r+   r)   r   r   .   s        ..DIB B B B
2 2 2 2    " " " \" " " " \" " "r+   r   c                  B    e Zd ZdZed
d            Zedd            Zd	S )JSONReportera  
    TODO: 3.0: Remove this JSONReporter in favor of the new one handling abs-path
    and confidence.

    TODO: 2.16: Add a new JSONReporter handling abs-path, confidence and scores.
    (Ultimately all other breaking change related to json for 3.0).
    r   r   r!   r   c                    | j         | j        | j        | j        | j        | j        | j        | j        | j        | j	        pd| j
        dS )N r   )categoryr   r   r   r   end_line
end_columnr   r   msgmsg_idr?   s    r)   r&   zJSONReporter.serializeR   sR     $n;Ln' +Ln{(b!.
 
 	
r+   rA   c                    t          | d         | d         | d         t          | d         | d         | d         | d         | d         | d         | d	         | d
                   t                    S )Nr   r   r   r   r   r   r   r   r   r   )abspathr   r   r   r   r   rS   rT   )rV   r   rU   location
confidence)r   r	   r   rC   s    r)   rD   zJSONReporter.deserializeb   s    "<0"8,	*)'/$V,&x0#E*$V,&x0(3*;7
 
 
 !!
 
 
 	
r+   NrE   rF   )rG   rH   rI   rJ   rM   r&   rD   r%   r+   r)   rO   rO   H   s^          
 
 
 \
 
 
 
 \
 
 
r+   rO   linterr   r!   r"   c                :    |                      t                     d S r<   )register_reporterrO   )r[   s    r)   registerr^   x   s    
\*****r+   )r[   r   r!   r"   )rJ   
__future__r   r   systypingr   r   pylint.interfacesr   pylint.messager   pylint.reporters.base_reporterr   pylint.typingr	   version_infor   typing_extensionspylint.lint.pylinterr   pylint.reporters.ureports.nodesr   strintr   r   rO   r^   r%   r+   r)   <module>rl      s  
   " " " " " "  



 * * * * * * * * ' ' ' ' ' ' " " " " " " 7 7 7 7 7 7 . . . . . .v ,       ++++++ 8------777777 	C=c]  $" " " " "| " " "4-
 -
 -
 -
 -
# -
 -
 -
`+ + + + + +r+   