如何从 Starlark 中的字符串创建路径?

Pay*_*ian 6 bazel starlark

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

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

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

MHS*_*tag 1

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

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

即ctx.label.package