Thông tin mặc định

Một nhà cung cấp cung cấp thông tin chung về các tệp trực tiếp và bắc cầu của mục tiêu. Mọi loại quy tắc đều có nhà cung cấp này, ngay cả khi hàm triển khai của quy tắc không trả về một cách rõ ràng. Mỗi thực thể DefaultInfo đều có các trường sau:
  • files
  • files_to_run
  • data_runfiles
  • default_runfiles
Hãy xem trang quy tắc để biết hướng dẫn chi tiết về cách sử dụng nhà cung cấp này.

Hội viên

DefaultInfo

DefaultInfo DefaultInfo(files=None, runfiles=None, data_runfiles=None, default_runfiles=None, executable=None)

Hàm khởi tạo DefaultInfo.

Thông số

Tham số Mô tả
files depset; hoặc None; giá trị mặc định là None
Một depset của File đối tượng đại diện cho các đầu ra mặc định cần tạo khi mục tiêu này được chỉ định trên dòng lệnh bazel. Theo mặc định, đây là tất cả các đầu ra được khai báo trước.
runfiles runfiles; hoặc None; giá trị mặc định là None
runfiles descriptor mô tả các tệp mà mục tiêu này cần khi chạy (thông qua lệnh run hoặc dưới dạng phần phụ thuộc của công cụ).
data_runfiles runfiles; hoặc None; giá trị mặc định là None

Bạn nên tránh sử dụng tham số này (xem "các tính năng runfiles cần tránh")

runfiles descriptor mô tả các tệp runfiles mà mục tiêu này cần chạy khi là phần phụ thuộc thông qua thuộc tính data.
default_runfiles runfiles; hoặc None; giá trị mặc định là None

Bạn nên tránh sử dụng tham số này (xem "các tính năng runfiles cần tránh")

runfiles descriptor mô tả các tệp runfiles mà mục tiêu này cần chạy khi là phần phụ thuộc thông qua bất kỳ thuộc tính nào khác ngoài thuộc tính data.
executable Tệp; hoặc None; giá trị mặc định là None
Nếu quy tắc này được đánh dấu là executable hoặc test, thì đây là đối tượng File đại diện cho tệp cần thực thi để chạy mục tiêu. Theo mặc định, đây là đầu ra được khai báo trước ctx.outputs.executable.

data_runfiles

runfiles DefaultInfo.data_runfiles

runfiles descriptor mô tả các tệp mà mục tiêu này cần khi chạy trong điều kiện là thuộc tính phụ thuộc data. Trong hầu hết các trường hợp, hãy sử dụng tham số default_runfiles. Xem "các tính năng runfiles cần tránh" để biết thông tin chi tiết. Có thể trả về None.

default_runfiles

runfiles DefaultInfo.default_runfiles

runfiles descriptor mô tả các tệp mà mục tiêu này cần khi chạy (thông qua lệnh run hoặc dưới dạng phần phụ thuộc của công cụ). Có thể trả về None.

files

depset DefaultInfo.files

Một depset của các đối tượng File đại diện cho các đầu ra mặc định cần tạo khi mục tiêu này được chỉ định trên dòng lệnh bazel. Theo mặc định, đây là tất cả các đầu ra được khai báo trước. Có thể trả về None.

files_to_run

FilesToRunProvider DefaultInfo.files_to_run

Một đối tượng FilesToRunProvider chứa thông tin về tệp thực thi và tệp runfiles của mục tiêu. Có thể trả về None.

to_json

string DefaultInfo.to_json()

Không dùng nữa. API này không dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào API này. API này bị tắt bằng ---incompatible_struct_has_no_methods. Hãy sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc xoá API này.
Tạo một chuỗi JSON từ tham số struct. Phương thức này chỉ hoạt động nếu tất cả các phần tử struct (đệ quy) là chuỗi, số nguyên, giá trị boolean, các struct khác, danh sách các loại này hoặc từ điển có khoá và giá trị chuỗi thuộc các loại này. Dấu ngoặc kép và dòng mới trong chuỗi được thoát. Ví dụ:
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"}}}
.

Không dùng nữa: thay vào đó, hãy sử dụng json.encode(x) hoặc json.encode_indent(x). Các hàm này hoạt động đối với các giá trị không phải là struct và không làm ô nhiễm không gian tên trường struct.

to_proto

string DefaultInfo.to_proto()

Không dùng nữa. API này không dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào API này. API này bị tắt bằng ---incompatible_struct_has_no_methods. Hãy sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc xoá API này.
Tạo một thông báo văn bản từ tham số struct. Phương thức này chỉ hoạt động nếu tất cả các phần tử struct (đệ quy) là chuỗi, số nguyên, giá trị boolean, các struct khác hoặc từ điển hoặc danh sách các loại này. Dấu ngoặc kép và dòng mới trong chuỗi được thoát. Các khoá struct được lặp lại theo thứ tự đã sắp xếp. Ví dụ:
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
# }

Không dùng nữa: thay vào đó, hãy sử dụng proto.encode_text(x).