Как сделать в starlark дорожку из нитки? - PullRequest
1 голос
/ 28 мая 2020

Я пишу код проверки для правила сборки bazel, и мне нужно выполнить проверку пути. Мне нужно проверить, существует ли определенный файл в том же каталоге, что и файл BUILD. Я заметил, что есть атрибут контекста build_file_path, который указывает на файл BUILD. Я хочу извлечь из него родительский каталог.

Похоже, я не могу создать новый объект path - я не вижу конструктора / инициализатора. Также кажется, что Starlark не поддерживает os.path как python, потому что импорт не поддерживается.

Какой канонический способ получить родительский каталог строкового объекта, представляющего путь в Starlark?

1 Ответ

1 голос
/ 03 июня 2020

Я не могу ответить на ваш последний вопрос, но, надеюсь, следующее поможет с первоначальной проблемой:

Вы можете использовать метку цели, для которой создается этот экземпляр правила, и найти ее пакет. Это даст вам строку, представляющую родительский каталог файла BUILD.

т.е. ctx.label.package

...