2

我正在为 bazel 构建规则编写一些验证代码,我需要进行一些路径验证。我需要检查某个文件是否存在于与 BUILD 文件相同的目录中。我注意到有一个上下文属性build_file_path指向 BUILD 文件。我想从中提取父目录。

看起来我无法创建新path对象 - 我没有看到构造函数/初始化程序。Starlark 似乎也os.path不像 python 那样支持,因为不支持导入。

获取表示 Starlark 中路径的字符串对象的父目录的规范方法是什么?

4

1 回答 1

1

我无法回答您的最后一个问题,但希望以下内容有助于解决最初的问题:

您可以使用正在为其构建此规则实例的目标的标签并找到它的包。这将为您提供一个表示 BUILD 文件的父目录的字符串。

即 ctx.label.package

于 2020-06-02T22:27:02.370 回答