
    yIf                        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dS )    )annotations)Sequence)Any
NamedTupleTypeVar)nodes)	UNDEFINED
Confidence)Message_Tc                  |    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<   dS )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        P/var/www/piapp/venv/lib/python3.11/site-packages/pylint/testutils/output_line.pyr   r      s         KKKD $D$$$$D$-J----!J!!!!H!%N%%%% 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dS )'
OutputLiner   symbolintlinenocolumnr   
end_lineno
end_columnobjectmsgr   Tr   check_endlineboolreturnc                .   |                      |j                  }|                     |j        |          }|                     |j        |          } | |j        |j        ||||j        pd|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)   r*   r%   r   r'   s         r   from_msgzOutputLine.from_msg+   s     ,,++CL-HH--cnmLL
sJHGMrGOOFD))N	
 	
 		
r   	str | intc                     t          |           S )zHandle column numbers.r#   )r%   s    r   r0   zOutputLine._get_column<   s     6{{r   valuer   	_T | Nonec                    |sdS | S )z|Used to make end_line and end_column None as indicated by our version
        compared to `min_pyver_end_position`.
        Nr   )r:   r*   s     r   r1   zOutputLine._get_py38_none_valueA   s    
  	4r   rowSequence[str] | strc                6   t          |t                    r|                    d          }	 t          |d                   }|                     |d                   }|                     |                     |d         |                    }|                     |                     |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#   r0   _value_to_optional_intr1   len	Exception)r5   r=   r*   r   r%   r   r'   s          r   from_csvzOutputLine.from_csvJ   s4    c3 	!))C..C	9s1v;;D__SV,,F11((Q?? H 33((Q?? J s88q====3Afh
CFCFCPQF    	9 	9 	93r1atRR88888	9s   CC9 9DD-tuple[str, str, str, str, str, str, str, str]c           
     6   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   st    
     MM  	
 		
r   
str | Nonec                4    | dk    s| sdS t          |           S )zCChecks if a (stringified) value should be None or a Python integer.NoneNr9   )r:   s    r   rK   z!OutputLine._value_to_optional_intt   s"     F??%?45zzr   N)T)r)   r   r*   r+   r,   r!   )r%   r7   r,   r#   )r:   r   r*   r+   r,   r;   )r=   r>   r*   r+   r,   r!   )r,   rO   )r:   rS   r,   r   )r   r   r   r   classmethodr6   staticmethodr0   r1   rN   rR   rK   r   r   r   r!   r!   !   s#        KKKKKKKKKKKKHHHOOO
 
 
 
 [
     \    \ =A9 9 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>r^      s   
 # " " " " " $ $ $ $ $ $ + + + + + + + + + +       3 3 3 3 3 3 3 3 * * * * * *WT]]    *   X X X X X X X X X Xr   