def run(self):
camisole.languages.load_builtins()
all_langs = camisole.languages.all().values()
self.options['widths'] = 'auto'
title, messages = self.make_title()
headers = [[nodes.paragraph(text="Language")],
[nodes.paragraph(text="Class")],
[nodes.paragraph(text="Binaries")]]
for f in self.package_finders:
headers.append([nodes.paragraph(text=f"{f.name} packages")])
table_body = []
for cls in sorted(all_langs, key=lambda e: e.name.lower()):
binaries = set(b.cmd_name for b in cls.required_binaries())
if not binaries:
continue
body = [[nodes.paragraph(text=cls.name)],
[nodes.literal(text=cls.__name__)],
build_list(binaries)]
for f in self.package_finders:
body.append(build_list(f.for_binaries(binaries)))
table_body.append(body)
table = [headers] + table_body
self.check_table_dimensions(table, 1, 0)
table_node = self.build_table_from_list(table, 'auto', 1, 0)
if title:
table_node.insert(0, title)
return [table_node] + messages
评论列表
文章目录