bazel-contrib/rules_python

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

Open

#2.144 aberto em 22 de ago. de 2024

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)Starlark (705 forks)auto 404
gazellehelp wanted

Métricas do repositório

Stars
 (679 stars)
Métricas de merge de PR
 (Métricas PR pendentes)

Description

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 :)

Guia do colaborador