bazel-contrib/rules_python

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

Open

#2.144 geöffnet am 22. Aug. 2024

Auf GitHub ansehen
 (0 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Starlark (705 Forks)auto 404
gazellehelp wanted

Repository-Metriken

Stars
 (679 Stars)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

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

Contributor Guide