bazel_module_tags 标签

包含模块中当前正在处理的模块扩展的标记。此对象包含扩展程序的每个标记类的字段,并且该字段的值是一个列表,其中包含每个标记实例的对象。此“标记实例”对象反过来又包含标记类的每个属性对应的字段。

标记实例对象具有 _sort_key 字段,该字段会返回一个不透明的值,可与其他排序键进行比较,以确定标记的相对顺序,即使在不同的标记类之间也是如此。标记按其在模块文件中的位置以及依赖关系图中模块的 BFS 顺序排序。此参数可与 sorted() 搭配使用,以恢复标记的原始顺序:sorted(tags, key=lambda tag: tag._sort_key)

当作为位置参数传递给 print()fail() 时,标记实例对象会转换为有意义的字符串表示形式,例如“位于 /home/user/workspace/MODULE.bazel:3:4 的‘安装’标记”。这可用于构建指向模块文件中标记位置的错误消息,例如 fail("Conflict between", tag1, "and", tag2)