Extensions >
API reference >
DefaultInfo
DefaultInfo
A provider that gives general information about a target's direct and transitive files. Every rule type has this provider, even if it is not returned explicitly by the rule's implementation function.Each
DefaultInfo
instance has the following fields:
files
files_to_run
data_runfiles
default_runfiles
See the
rules page for more information.
data_runfiles
runfiles DefaultInfo.data_runfiles
the files that are added to the runfiles of a target that depend on the rule via the
data
attribute.
May return
None
.
default_runfiles
runfiles DefaultInfo.default_runfiles
the files that are added to the runfiles of a target that depend on the rule via anything but the
data
attribute.
May return
None
.
files
depset DefaultInfo.files
A
depset
of
File
objects representing the default outputs to build when this target is specified on the bazel command line. By default it is all predeclared outputs.
May return
None
.
files_to_run
FilesToRunProvider DefaultInfo.files_to_run
A
FilesToRunProvider
object containing information about the executable and runfiles of the target.
May return
None
.
to_json
string DefaultInfo.to_json()
Creates a JSON string from the struct parameter. This method only works if all struct elements (recursively) are strings, ints, booleans, other structs, a list of these types or a dictionary with string keys and values of these types. Quotes and new lines in strings are escaped. Examples:
struct(key=123).to_json()
# {"key":123}
struct(key=True).to_json()
# {"key":true}
struct(key=[1, 2, 3]).to_json()
# {"key":[1,2,3]}
struct(key='text').to_json()
# {"key":"text"}
struct(key=struct(inner_key='text')).to_json()
# {"key":{"inner_key":"text"}}
struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
# {"key":[{"inner_key":1},{"inner_key":2}]}
struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
# {"key":{"inner_key":{"inner_inner_key":"text"}}}
to_proto
string DefaultInfo.to_proto()
Creates a text message from the struct parameter. This method only works if all struct elements (recursively) are strings, ints, booleans, other structs or dicts or lists of these types. Quotes and new lines in strings are escaped. Struct keys are iterated in the sorted order. Examples:
struct(key=123).to_proto()
# key: 123
struct(key=True).to_proto()
# key: true
struct(key=[1, 2, 3]).to_proto()
# key: 1
# key: 2
# key: 3
struct(key='text').to_proto()
# key: "text"
struct(key=struct(inner_key='text')).to_proto()
# key {
# inner_key: "text"
# }
struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
# key {
# inner_key: 1
# }
# key {
# inner_key: 2
# }
struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
# key {
# inner_key {
# inner_inner_key: "text"
# }
# }
struct(foo={4: 3, 2: 1}).to_proto()
# foo: {
# key: 4
# value: 3
# }
# foo: {
# key: 2
# value: 1
# }