This value has a dual purpose:
- It is a function that can be called to construct 'struct'-like values:
DataInfo = provider() d = DataInfo(x = 2, y = 3) print(d.x + d.y) # prints 5
Note: Some providers, defined internally, do not allow instance creation - It is a key to access a provider instance on a Target
DataInfo = provider() def _rule_impl(ctx) ... ctx.attr.dep[DataInfo]
Provider
using the provider function.