本文整理汇总了Python中docutils.nodes.colspec方法的典型用法代码示例。如果您正苦于以下问题:Python nodes.colspec方法的具体用法?Python nodes.colspec怎么用?Python nodes.colspec使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类docutils.nodes
的用法示例。
在下文中一共展示了nodes.colspec方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: build_table
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import colspec [as 别名]
def build_table(self, tabledata, tableline, stub_columns=0, widths=None):
colwidths, headrows, bodyrows = tabledata
table = nodes.table()
if widths:
table['classes'] += ['colwidths-%s' % widths]
tgroup = nodes.tgroup(cols=len(colwidths))
table += tgroup
for colwidth in colwidths:
colspec = nodes.colspec(colwidth=colwidth)
if stub_columns:
colspec.attributes['stub'] = 1
stub_columns -= 1
tgroup += colspec
if headrows:
thead = nodes.thead()
tgroup += thead
for row in headrows:
thead += self.build_table_row(row, tableline)
tbody = nodes.tbody()
tgroup += tbody
for row in bodyrows:
tbody += self.build_table_row(row, tableline)
return table
示例2: depart_colspec
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import colspec [as 别名]
def depart_colspec(self, node):
# write out <colgroup> when all colspecs are processed
if isinstance(node.next_node(descend=False, siblings=True),
nodes.colspec):
return
if 'colwidths-auto' in node.parent.parent['classes'] or (
'colwidths-auto' in self.settings.table_style and
('colwidths-given' not in node.parent.parent['classes'])):
return
total_width = sum(node['colwidth'] for node in self.colspecs)
self.body.append(self.starttag(node, 'colgroup'))
for node in self.colspecs:
colwidth = int(node['colwidth'] * 100.0 / total_width + 0.5)
self.body.append(self.emptytag(node, 'col',
style='width: %i%%' % colwidth))
self.body.append('</colgroup>\n')
示例3: build_table
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import colspec [as 别名]
def build_table(self, tabledata, tableline, stub_columns=0, widths=None):
colwidths, headrows, bodyrows = tabledata
table = nodes.table()
if widths == 'auto':
table['classes'] += ['colwidths-auto']
elif widths: # "grid" or list of integers
table['classes'] += ['colwidths-given']
tgroup = nodes.tgroup(cols=len(colwidths))
table += tgroup
for colwidth in colwidths:
colspec = nodes.colspec(colwidth=colwidth)
if stub_columns:
colspec.attributes['stub'] = 1
stub_columns -= 1
tgroup += colspec
if headrows:
thead = nodes.thead()
tgroup += thead
for row in headrows:
thead += self.build_table_row(row, tableline)
tbody = nodes.tbody()
tgroup += tbody
for row in bodyrows:
tbody += self.build_table_row(row, tableline)
return table
示例4: depart_colspec
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import colspec [as 别名]
def depart_colspec(self, node):
# write out <colgroup> when all colspecs are processed
if isinstance(node.next_node(descend=False, siblings=True),
nodes.colspec):
return
if 'colwidths-auto' in node.parent.parent['classes'] or (
'colwidths-auto' in self.settings.table_style and
('colwidths-given' not in node.parent.parent['classes'])):
return
total_width = sum(node['colwidth'] for node in self.colspecs)
self.body.append(self.starttag(node, 'colgroup'))
for node in self.colspecs:
colwidth = int(node['colwidth'] * 100.0 / total_width + 0.5)
self.body.append(self.emptytag(node, 'col',
width='%i%%' % colwidth))
self.body.append('</colgroup>\n')
# Compact lists:
# exclude definition lists and field lists (non-compact by default)
示例5: prepare_table_header
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import colspec [as 别名]
def prepare_table_header(titles, widths):
"""Build docutil empty table """
ncols = len(titles)
assert len(widths) == ncols
tgroup = nodes.tgroup(cols=ncols)
for width in widths:
tgroup += nodes.colspec(colwidth=width)
header = nodes.row()
for title in titles:
header += nodes.entry("", nodes.paragraph(text=title))
tgroup += nodes.thead("", header)
tbody = nodes.tbody()
tgroup += tbody
return nodes.table("", tgroup), tbody
示例6: create_table
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import colspec [as 别名]
def create_table(self, head, body, colspec=None):
table = nodes.table()
tgroup = nodes.tgroup()
table.append(tgroup)
# Create a colspec for each column
if colspec is None:
colspec = [1 for n in range(len(head))]
for width in colspec:
tgroup.append(nodes.colspec(colwidth=width))
# Create the table headers
thead = nodes.thead()
thead.append(self.row(head))
tgroup.append(thead)
# Create the table body
tbody = nodes.tbody()
tbody.extend([self.row(r) for r in body])
tgroup.append(tbody)
return table
示例7: models_table
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import colspec [as 别名]
def models_table(self, species):
table = nodes.table()
tgroup = nodes.tgroup(cols=2)
for _ in range(2):
colspec = nodes.colspec(colwidth=1)
tgroup.append(colspec)
table += tgroup
thead = nodes.thead()
tgroup += thead
row = nodes.row()
entry = nodes.entry()
entry += nodes.paragraph(text="ID")
row += entry
entry = nodes.entry()
entry += nodes.paragraph(text="Description")
row += entry
thead.append(row)
rows = []
for model in species.demographic_models:
row = nodes.row()
rows.append(row)
mid = self.get_demographic_model_id(species, model)
entry = nodes.entry()
para = nodes.paragraph()
entry += para
para += nodes.reference(internal=True, refid=mid, text=model.id)
row += entry
entry = nodes.entry()
entry += nodes.paragraph(text=model.description)
row += entry
tbody = nodes.tbody()
tbody.extend(rows)
tgroup += tbody
return table
示例8: create_summary_table
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import colspec [as 别名]
def create_summary_table(self, config, context, options):
default_column = self.builder.config.cfg_options_default_in_summary_table
table_spec = addnodes.tabular_col_spec()
table = nodes.table("", classes=["longtable"])
if default_column:
table_spec['spec'] = r'\X{1}{4}\X{1}{4}\X{2}{4}'
group = nodes.tgroup('', cols=3)
group.append(nodes.colspec('', colwidth=20))
group.append(nodes.colspec('', colwidth=20))
group.append(nodes.colspec('', colwidth=60))
else:
table_spec['spec'] = r'\X{1}{4}\X{2}{4}'
group = nodes.tgroup('', cols=2)
group.append(nodes.colspec('', colwidth=25))
group.append(nodes.colspec('', colwidth=75))
table.append(group)
if self.builder.config.cfg_options_table_add_header:
header = nodes.thead('')
group.append(header)
row = nodes.row()
row += nodes.entry("", nodes.Text("option"))
if default_column:
row += nodes.entry("", nodes.Text("default"))
row += nodes.entry("", nodes.Text("summary"))
header.append(row)
body = nodes.tbody('')
group.append(body)
for opt in options:
body += self.create_option_reference_table_row(opt, config, context)
return [table_spec, table]
示例9: run
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import colspec [as 别名]
def run(self):
if not self.content:
warning = self.state_machine.reporter.warning(
'Content block expected for the "%s" directive; none found.'
% self.name, nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
return [warning]
title, messages = self.make_title()
node = nodes.Element() # anonymous container for parsing
self.state.nested_parse(self.content, self.content_offset, node)
if len(node) != 1 or not isinstance(node[0], nodes.table):
error = self.state_machine.reporter.error(
'Error parsing content block for the "%s" directive: exactly '
'one table expected.' % self.name, nodes.literal_block(
self.block_text, self.block_text), line=self.lineno)
return [error]
table_node = node[0]
table_node['classes'] += self.options.get('class', [])
if 'align' in self.options:
table_node['align'] = self.options.get('align')
tgroup = table_node[0]
if type(self.widths) == list:
colspecs = [child for child in tgroup.children
if child.tagname == 'colspec']
for colspec, col_width in zip(colspecs, self.widths):
colspec['colwidth'] = col_width
# @@@ the colwidths argument for <tgroup> is not part of the
# XML Exchange Table spec (https://www.oasis-open.org/specs/tm9901.htm)
# and hence violates the docutils.dtd.
if self.widths == 'auto':
table_node['classes'] += ['colwidths-auto']
elif self.widths: # "grid" or list of integers
table_node['classes'] += ['colwidths-given']
self.add_name(table_node)
if title:
table_node.insert(0, title)
return [table_node] + messages
示例10: build_table_from_list
# 需要导入模块: from docutils import nodes [as 别名]
# 或者: from docutils.nodes import colspec [as 别名]
def build_table_from_list(self, table_data, widths, col_widths, header_rows,
stub_columns):
table = nodes.table()
if widths:
table['classes'] += ['colwidths-%s' % widths]
tgroup = nodes.tgroup(cols=len(col_widths))
table += tgroup
for col_width in col_widths:
colspec = nodes.colspec()
if col_width is not None:
colspec.attributes['colwidth'] = col_width
if stub_columns:
colspec.attributes['stub'] = 1
stub_columns -= 1
tgroup += colspec
rows = []
for row in table_data:
row_node = nodes.row()
for cell in row:
entry = nodes.entry()
entry += cell
row_node += entry
rows.append(row_node)
if header_rows:
thead = nodes.thead()
thead.extend(rows[:header_rows])
tgroup += thead
tbody = nodes.tbody()
tbody.extend(rows[header_rows:])
tgroup += tbody
return table