bazel-contrib/rules_python

[gazelle] Adjust how `imports` is auto-generated

Open

#2,144 创建于 2024年8月22日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)Starlark (705 fork)auto 404
gazellehelp wanted

仓库指标

Star
 (679 star)
PR 合并指标
 (PR 指标待抓取)

描述

Discussion moved from an internal doc and discussion with @rickeylev:

Externally, the Bazel Python rules have an attribute named imports. This is a string list of repo-relative paths that should be added to sys.path.

@dougthor42 writes in a comment:

FYI: With gazelle's python_root directive, these are autogenerated as package-relative paths, eg ["../../.."].

Now that I see [that imports is repo-relative], I might submit a PR to change Gazelle to generate repo-relative paths.

@rickeylev replies:

Hm. Is package-relative better than repo-relative? Quick thought is: they both have pros and cons. Which makes me think: is there something that has all pros and no cons? To which I think: maybe we can change the logic to more directly express what we're after. When src/my_package says "add .. to path", what it really means is: make sure sys.path has a directory with "my_package" as a sub directory. So maybe instead we add a top_level_package_name attribute? Under the hood, a quick implementation would be to just do "compute the correct imports attr value automatically". A better impl for the future would be to ensure that some directory with the desired name ends up in sys.path, however that may come to be.

Thanks for the inspiration :)

贡献者指南