
    e                        d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZmZ d dlmZ  ed      Z G d d	e      Z G d
 de      Zy)    )annotations)Sequence)Any
NamedTupleTypeVar)nodes)	UNDEFINED
Confidence)Message_Tc                  z    e Zd ZU ded<   dZded<   dZded<   dZded	<   eZd
ed<   dZ	ded<   dZ
ded<   dZded<   y)MessageTeststrmsg_idN
int | Nonelineznodes.NodeNG | Nonenodez
Any | NoneargszConfidence | None
confidence
col_offsetend_lineend_col_offset)__name__
__module____qualname____annotations__r   r   r   r	   r   r   r   r        >/usr/lib/python3/dist-packages/pylint/testutils/output_line.pyr   r      sT    KD* $D
$D*$-J!-!J
!Hj!%NJ%r   r   c                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   eddd       Zedd       Zedd       Ze	 d	 	 	 	 	 dd       Z	ddZ
edd       Zy)
OutputLiner   symbolintlinenocolumnr   
end_lineno
end_columnobjectmsgr   c                f   | j                  |j                        }| j                  |j                  |      }| j                  |j                  |      } | |j
                  |j                  ||||j                  xs d|j                  j                  dd      |j                  j                        S )z+Create an OutputLine from a Pylint Message. z

)_get_columnr%   _get_py38_none_valuer   r'   r"   r   objr)   replacer   name)clsr)   check_endliner%   r   r'   s         r   from_msgzOutputLine.from_msg+   s     ,++CLL-H--cnnmL
JJHHGGMrGGOOFD)NN	
 		
r   c                    t        |       S )zHandle column numbers.r#   )r%   s    r   r-   zOutputLine._get_column<   s     6{r   c                    |sy| S )z|Used to make end_line and end_column None as indicated by our version
        compared to `min_pyver_end_position`.
        Nr   )valuer3   s     r   r.   zOutputLine._get_py38_none_valueA   s    
 r   c                   t        |t              r|j                  d      }	 t        |d         }| j	                  |d         }| j                  | j                  |d   |            }| j                  | j                  |d   |            }t        |      dk(  sJ  | |d   |||||d   |d	   |d
         S # t        $ r  | dddddddd      cY S w xY w)ztCreate an OutputLine from a comma separated list (the functional tests
        expected output .txt files).
        ,               r            r+   N)	
isinstancer   splitr#   r-   _value_to_optional_intr.   len	Exception)r2   rowr3   r   r%   r   r'   s          r   from_csvzOutputLine.from_csvJ   s     c3))C.C	9s1v;D__SV,F11((Q?H 33((Q?J s8q= =Afh
CFCFCPQF   	9r1atRR88	9s   BB8 8CCc           
     F   t        | j                        t        | j                        t        | j                        t        | j                        t        | j
                        t        | j                        t        | j                        t        | j                        fS )zZConvert an OutputLine to a tuple of string to be written by a
        csv-writer.
        )	r   r"   r$   r%   r&   r'   r(   r)   r   )selfs    r   to_csvzOutputLine.to_csve   sm    
   M 	
 		
r   c                (    | dk(  s| syt        |       S )zCChecks if a (stringified) value should be None or a Python integer.NoneNr6   )r8   s    r   rE   z!OutputLine._value_to_optional_intt   s     F?%5zr   N)T)r)   r   r3   boolreturnr!   )r%   z	str | intrP   r#   )r8   r   r3   rO   rP   z	_T | None)rH   zSequence[str] | strr3   rO   rP   r!   )rP   z-tuple[str, str, str, str, str, str, str, str])r8   z
str | NonerP   r   )r   r   r   r   classmethodr4   staticmethodr-   r.   rI   rL   rE   r   r   r   r!   r!   !   s    KKKK	HO
 
      =A9%96:9	9 94
  r   r!   N)
__future__r   collections.abcr   typingr   r   r   astroidr   pylint.interfacesr	   r
   pylint.message.messager   r   r   r!   r   r   r   <module>rY      s?   
 # $ + +  3 *T]* X Xr   