-
-
Notifications
You must be signed in to change notification settings - Fork 638
Description
🚀 feature request
Relevant Rules
py_library, py_binary, py_test (basically all rules that consume Python files)
Description
Currently the rules don't advertise the PyInfo provider through the provides argument to the rule function (https://bazel.build/rules/lib/globals/bzl#rule.provides), which means that aspects that want to consume PyInfo can't use required_providers to restrict themselves to the Python rules, and instead have to apply to all rules.
Describe the solution you'd like
Add rule(..., provides = [PyInfo]) to the rule definitions, like e.g. https://github.com/bazelbuild/rules_python/blob/1.0.0/python/private/proto/py_proto_library.bzl#L237.
Describe alternatives you've considered
Current workaround is to check the actual presence of the provider in the aspect implementation function (if PyInfo in target). This works but is somewhat inefficient because the aspect implementation function needs to be evaluated for all rules, including non-Python ones.