o
    g                     @   sR   d dl Z d dlmZmZmZ d dlmZ d dlmZ d dl	m
Z
 G dd dZdS )    N)ListOptionalTuple)	MSG_TYPES)InvalidMessageError)normalize_textc                   @   s   e Zd Z			ddedededededeeeef  deeeef  d	eeeef  fd
dZe	deddfddZ
dd Zdd ZdefddZddedefddZdS )MessageDefinitionNmsgidmsgdescriptionsymbolscope
minversion
maxversion	old_namesc
                 C   sv   |j | _| | || _|| _|| _|| _|| _|| _|| _	g | _
|	r7|	D ]\}
}| |
 | j
|
|f q%d S d S N)namechecker_namecheck_msgidr	   r   r
   r   r   r   r   r   append)selfcheckerr	   r
   r   r   r   r   r   r   	old_msgid
old_symbol r   _/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pylint/message/message_definition.py__init__   s$   

zMessageDefinition.__init__returnc                 C   sB   t | dkrtd| | d tvrtd| d  d| d S )N   zInvalid message id r   zBad message type z in )lenr   r   )r	   r   r   r   r   *   s
   zMessageDefinition.check_msgidc                 C   s   d| j  d| j dS )NzMessageDefinition: ())r   r	   r   r   r   r   __repr__1   s   zMessageDefinition.__repr__c                 C   s   t |  d| j d| j S )N:
 )reprr
   r   r"   r   r   r   __str__4   s   zMessageDefinition.__str__c                 C   s8   | j dur| j tjkrdS | jdur| jtjkrdS dS )zCreturn True if message may be emitted using the current interpreterNFT)r   sysversion_infor   r"   r   r   r   may_be_emitted7   s
   z MessageDefinition.may_be_emittedF
checkerrefc                 C   s  | j }|r|d| j d7 }| j}| js| jrYg }| jr-|dddd | jD   | jrA|dddd | jD   d	|}|rQ|d
| d7 }n|d| d7 }td| dd}| j	 d| j
 d}|dkr| d }d| d|d d| S d| d| S )z/return the help string for the given message idz This message belongs to the z	 checker.z< .c                 s       | ]}t |V  qd S r   str.0nr   r   r   	<genexpr>H       z0MessageDefinition.format_help.<locals>.<genexpr>z>= c                 s   r-   r   r.   r0   r   r   r   r3   J   r4   z or z' It can't be emitted when using Python z1 This message can't be emitted when using Python r%   z  )indentr    r!   z%sr   :z: *z*
r$   )r   r   r
   r   r   r   joinr   splitr   r	   
splitlinesrstrip)r   r+   desctitlerestrrestrictionmsg_help
message_idr   r   r   format_help?   s,   ""

zMessageDefinition.format_help)NNN)F)__name__
__module____qualname__r/   r   r   intr   r   staticmethodr   r#   r'   boolr*   rA   r   r   r   r   r      s6    		

r   )r(   typingr   r   r   pylint.constantsr   pylint.exceptionsr   pylint.utilsr   r   r   r   r   r   <module>   s   