o
    ýÑÐbè  ã                   @   s@   d Z ddlm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é    )Úprint_function)Ú
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 t| ƒ ¡  d| _d S )Nr   )Úsuperr   Úbegin_formatZ
list_level)Úself©Ú	__class__© úd/var/www/secure340b-portal/env/lib/python3.10/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 d S  ty,   tdƒ Y d S w )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_paragraph3   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_table8   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 ]2\}}|  d
¡ t|ƒD ]\}	}
|  ||	 |
 ¡ |  d
¡ qN|dkrn|jrn|  |¡ qA|  |¡ qAdS )zformat a tablec                 S   s   g | ]}|d  ‘qS )r   r   )Ú.0Úsizer   r   r   Ú
<listcomp>E   ó    z,TextWriter.default_table.<locals>.<listcomp>ú z%%-%ssz
+ú+c                 S   ó   g | ]}d | ‘qS )r   r   ©r.   Úwr   r   r   r0   I   r1   z+
c                 S   r4   )r   r   r5   r   r   r   r0   J   r1   ú|r   N)r   r   ÚtupleÚsplitÚwriter%   Zrheaders)r   r   r(   r)   Zformat_stringsZtable_linesepZheadsepr+   ÚlineÚ
line_indexZat_indexr   r   r   r'   C   s    


øzTextWriter.default_tablec                 C   s4   |   d¡ |j ¡ D ]	}|   d| ¡ q
|   ¡  dS )z;display a verbatim layout as text (so difficult ;)
        z::
z    N)r   ÚdataÚ
splitlines)r   r   r;   r   r   r   Úvisit_verbatimtextW   s   
zTextWriter.visit_verbatimtextc                 C   s   |   d|j ¡ dS )zadd some textz%sN)r:   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)rD   Ú
__future__r   Zpylint.reporters.ureportsr   r   ZBULLETSr   r   r   r   r   Ú<module>   s   