-
-
Notifications
You must be signed in to change notification settings - Fork 600
feat(gazelle): Add type-checking only dependencies to pyi_deps #3014
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
dougthor42
merged 11 commits into
bazel-contrib:main
from
amartani:martani/gazelle-pyi-deps
Jun 26, 2025
Merged
feat(gazelle): Add type-checking only dependencies to pyi_deps #3014
dougthor42
merged 11 commits into
bazel-contrib:main
from
amartani:martani/gazelle-pyi-deps
Jun 26, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dougthor42
reviewed
Jun 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! This will be a really nice improvement.
Couple requests:
- Guard this behind a gazelle directive. Maybe
# gazelle:python_generate_pyi_deps
(defaultfalse
for now).- Or
python_generate_pyi_deps_attribute
?python_use_pyi_deps_attribute
?
- Or
- Add the directive to
gazelle/README.md
- the table of directives and a section for the directive. - In the section for the directive, document that only two forms are supported:
if typing.TYPE_CHECKING:
andif TYPE_CHECKING:
.
For example, if someone doesor other odd stuff like that, then the imports won't be marked asimport typing as foo if foo.TYPE_CHECKING: ...
pyi_deps
.
aignas
reviewed
Jun 24, 2025
dougthor42
approved these changes
Jun 26, 2025
This was referenced Jun 28, 2025
github-merge-queue bot
pushed a commit
that referenced
this pull request
Jun 29, 2025
Fix an issue in #3014 where a dependency may end up being added in both `deps` and `pyi_deps`, in cases where the regular and the type-checking import refer to different python modules on the same `py_library` target. Other cases are already deduplicated earlier on, but this case can only be deduplicated in the resolve phase. (No new changelog entry since this is a fix to an unreleased feature that is already in the changelog)
github-merge-queue bot
pushed a commit
that referenced
this pull request
Jun 30, 2025
Fix an issue in #3014 where, when all type-checking dependencies are removed from a file, the corresponding target's `pyi_deps` doesn't get cleaned up. I traced this back to `ResolveAttrs`, though I'm not entirely sure of what other behaviors this may trigger. (Currently, removing `deps` from `ResolveAttrs` doesn't break any existing test case) (No new changelog entry since this is a fix to an unreleased feature that is already in the changelog)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#2538 added the attribute
pyi_deps
to python rules, intended to be used for dependencies that are only used for type-checking purposes. This PR adds a new directive,gazelle:python_generate_pyi_deps
, which, when enabled:if TYPE_CHECKING:
block), the dependency is added topyi_deps
instead ofdeps
;boto3-stubs
) are now added topyi_deps
instead ofdeps
.