a
    À=aÔ  ã                   @   s4   d Z ddlmZ g d¢ZddgZG dd„ deƒZdS )	z$Text formatting drivers for ureportsé    )Ú
BaseWriter)Ú ú=ú-ú`Ú.ú~ú^Ú*r   c                       s`   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Z‡  ZS )Ú
TextWriterzVformat layouts as text
    (ReStructured inspiration but not totally handled yet)
    c                    s   t ƒ  ¡  d| _d S )Nr   )ÚsuperÚbegin_formatZ
list_level)Úself©Ú	__class__© úDlib/python3.9/site-packages/pylint/reporters/ureports/text_writer.pyr      s    
zTextWriter.begin_formatc                 C   s:   |  j d7  _ |  ¡  |  |¡ |  j d8  _ |  ¡  dS )zdisplay a section as texté   N)ÚsectionÚwritelnÚformat_children©r   Úlayoutr   r   r   Úvisit_section   s
    
zTextWriter.visit_sectionc                 C   s2   |  j d7  _ |  |¡ |  j d8  _ |  ¡  dS )z(Display an evaluation section as a text.r   N)r   r   r   r   r   r   r   Úvisit_evaluationsection%   s    
z"TextWriter.visit_evaluationsectionc                 C   sZ   d  t|  |¡ƒ¡}|  |¡ z|  t| j t|ƒ ¡ W n tyT   tdƒ Y n0 d S )Nr   z-FIXME TITLE TOO DEEP. TURNING TITLE INTO TEXT)	ÚjoinÚlistZcompute_contentr   ÚTITLE_UNDERLINESr   ÚlenÚ
IndexErrorÚprint)r   r   Útitler   r   r   Úvisit_title,   s    
zTextWriter.visit_titlec                 C   s   |   |¡ |  ¡  dS )zenter a paragraphN)r   r   r   r   r   r   Úvisit_paragraph4   s    
zTextWriter.visit_paragraphc                 C   sh   |   |¡}dgt|d ƒ }|D ],}t|ƒD ]\}}t|| t|ƒƒ||< q,q |  |||¡ |  ¡  dS )zdisplay a table as textr   N)Zget_table_contentr   Ú	enumerateÚmaxÚdefault_tabler   )r   r   Útable_contentÚ
cols_widthÚrowÚindexÚcolr   r   r   Úvisit_table9   s    
zTextWriter.visit_tablec                 C   sì   dd„ |D ƒ}d  dgt|ƒ ¡}|t|ƒ }| d¡}dd  dd„ |D ƒ¡ d	 }dd  d
d„ |D ƒ¡ d	 }|  |¡ t|ƒD ]d\}}|  d¡ t|ƒD ]$\}	}
|  ||	 |
 ¡ |  d¡ qœ|dkrÜ|jrÜ|  |¡ q‚|  |¡ q‚dS )zformat a tablec                 S   s   g | ]}|d  ‘qS )r   r   )Ú.0Úsizer   r   r   Ú
<listcomp>F   ó    z,TextWriter.default_table.<locals>.<listcomp>ú z%%-%ssz
+ú+c                 s   s   | ]}d | V  qdS )r   Nr   ©r-   Úwr   r   r   Ú	<genexpr>J   r0   z+TextWriter.default_table.<locals>.<genexpr>z+
c                 s   s   | ]}d | V  qdS )r   Nr   r3   r   r   r   r5   K   r0   ú|r   N)r   r   ÚtupleÚsplitÚwriter$   Zrheaders)r   r   r'   r(   Zformat_stringsZtable_linesepZheadsepr*   ÚlineZ
line_indexZat_indexr   r   r   r&   D   s    


zTextWriter.default_tablec                 C   s4   |   d¡ |j ¡ D ]}|   d| ¡ q|   ¡  dS )z2display a verbatim layout as text (so difficult ;)z::
z    N)r   ÚdataÚ
splitlines)r   r   r:   r   r   r   Úvisit_verbatimtextX   s    
zTextWriter.visit_verbatimtextc                 C   s   |   d|j ¡ dS )zadd some textz%sN)r9   r;   r   r   r   r   Ú
visit_text_   s    zTextWriter.visit_text)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r"   r#   r,   r&   r=   r>   Ú__classcell__r   r   r   r   r      s   r   N)rB   Zpylint.reporters.ureportsr   r   ZBULLETSr   r   r   r   r   Ú<module>   s   