18 from .aligners
import FirstColumnAligner, ColumnAligner, NullAligner
19 from .dataextractor
import DataExtractor
20 from .rowsplitter
import RowSplitter
27 _whitespace = re.compile(
'\s{2,}')
31 _split_multiline_doc =
True
49 rows = self.
_extractor_extractor.rows_from_table(table)
52 return (self.
_format_row_format_row(r, table)
for r
in rows)
58 for original
in original_rows:
59 for split
in self.
_splitter_splitter.split(original, table.type):
66 return table
is not None and table.type
in [
'test case',
'keyword']
70 cell.replace(
'\n',
' '))
for cell
in row]
73 return '\\'.join(match.group(0))
76 raise NotImplementedError
79 raise NotImplementedError
88 return '*%s*' % cell
if cell
else ''
97 return [c.replace(
'\t',
'\\t')
for c
in row]
100 row = [cell.replace(
'\n',
' ')
for cell
in row]
101 return row + [
''] * (self.
_column_count_column_count - len(row))
108 _test_or_keyword_name_width = 18
112 _setting_and_variable_name_width = 14
117 return aligner.align_row(row)
120 if table
and table.type
in [
'setting',
'variable']:
127 header = [
'*** %s ***' % header[0]] + header[1:]
129 return aligner.align_row(header)
160 cell = cell.replace(
' | ',
' \\| ')
161 if cell.startswith(
'| '):
163 if cell.endswith(
' |'):
164 cell = cell[:-1] +
'\\|'