lang_binaries.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:camisole 作者: prologin 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号