File: //lib/python3.6/site-packages/docutils/parsers/rst/directives/__pycache__/tables.cpython-36.pyc
3
v2�eXW � @ s� d Z dZddlZddlZddlZddlmZmZm Z m
Z
ddlmZ ddl
mZ ddlmZ ddlmZ d d
� ZG dd� de�ZG d
d� de�ZG dd� de�ZG dd� de�ZdS )z
Directives for table elements.
ZreStructuredText� N)�io�nodes�statemachine�utils)�
SafeString)�SystemMessagePropagation)� Directive)�
directivesc C s t j| d�S )N�left�center�right)r
r r )r Zchoice)Zargument� r
�/usr/lib/python3.6/tables.py�align s r c @ sl e Zd ZdZdZdZejeje ej
dej�d�ZdZ
dd� Zd d
� Zdd� Zed
d� �Zdd� Zdd� ZdS )�Tablez#
Generic table base class.
� T�auto�grid)�class�namer �widthsc C s^ | j rN| j d }| jj|| j�\}}tj|df|�� }| jj| j�\|_|_ nd }g }||fS )Nr � )
Z arguments�stateZinline_text�linenor �title�
state_machineZget_source_and_line�source�line)�selfZ
title_textZ
text_nodes�messagesr r
r
r �
make_title* s
zTable.make_titlec C sX | j j| jd �}g }d}d| jkrP| j| jd jd�| j� |�\}}|j|� ||fS )Nr r �header�
)r �
get_sourcer �options�parse_csv_data_into_rows�split�
HeaderDialect�extend)r r �
table_head�max_header_cols�rowsr
r
r �process_header_option7 s
zTable.process_header_optionc C sH t |�|k rF| jjjd|t |�| jf tj| j| j�| jd�}t |��t |�| ko\dkn r�| jjjdt |�| jf tj| j| j�| jd�}t |��x�|D ]�}t |�|k r�| jjjd|t |�| jf tj| j| j�| jd�}t |��t |�| k�odkn r�| jjjdt |�| jf tj| j| j�| jd�}t |��q�W d S )NzP%s header row(s) specified but only %s row(s) of data supplied ("%s" directive).)r r zeInsufficient data supplied (%s row(s)); no data remaining for table body, required by "%s" directive.zU%s stub column(s) specified but only %s columns(s) of data supplied ("%s" directive).ziInsufficient data supplied (%s columns(s)); no data remaining for table body, required by "%s" directive.)
�lenr �reporter�errorr r �
literal_block�
block_textr r )r r+ �header_rows�stub_columnsr/ �rowr
r
r �check_table_dimensionsB s2
zTable.check_table_dimensionsc C s | j jdd�S )Nr r )r$ �get)r r
r
r r a s zTable.widthsc C s� t | j�tkrXt| j�|krP| jjjd| j|f tj | j
| j
�| jd�}t|��| j}n>|rld| g| }n*| jjjdtj | j
| j
�| jd�}t|��|S )Nz="%s" widths do not match the number of columns in table (%s).)r �d z#No table data detected in CSV file.)
�typer �listr- r r. r/ r r r0 r1 r r )r �max_colsr/ �
col_widthsr
r
r �get_column_widthse s zTable.get_column_widthsc C sL xF|D ]>}x8|D ]0}t |�|k r|jdddg fg|t |� � qW qW d S )Nr )r- r( )r �columns�parts�partr4 r
r
r �"extend_short_rows_with_empty_cellsw s
z(Table.extend_short_rows_with_empty_cellsN)r r )�__name__�
__module__�__qualname__�__doc__Zoptional_argumentsZfinal_argument_whitespacer �class_option� unchangedr �value_or�positive_int_list�option_specZhas_contentr r, r5 �propertyr r<