You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#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:
When a dependency is added only to satisfy type-checking only imports (in a if TYPE_CHECKING: block), the dependency is added to pyi_deps instead of deps;
Third-party stub packages (eg. boto3-stubs) are now added to pyi_deps instead of deps.
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 (default false for now).
Or python_generate_pyi_deps_attribute? python_use_pyi_deps_attribute?
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: and if TYPE_CHECKING:.
For example, if someone does
importtypingasfooiffoo.TYPE_CHECKING:
...
or other odd stuff like that, then the imports won't be marked as pyi_deps.
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)
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)
amartani added a commit
to benchling/rules_python
that referenced
this pull request
Jul 8, 2025
…ntrib#3036)
Fix an issue in bazel-contrib#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)
amartani added a commit
to benchling/rules_python
that referenced
this pull request
Jul 8, 2025
Fix an issue in bazel-contrib#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)
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
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_depsto 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_depsinstead ofdeps;boto3-stubs) are now added topyi_depsinstead ofdeps.