Thông tin mặc định

Báo cáo sự cố Xem nguồn

Trì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ó trình cung cấp này, ngay cả khi không được hàm triển khai của quy tắc trả về một cách rõ ràng. Mỗi thực thể DefaultInfo có các trường sau:
  • files
  • files_to_run
  • data_runfiles
  • default_runfiles
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.

Các tham số

Thông số Nội dung mô tả
files depset; hoặc None; mặc định là None
Một depset của đối tượng File biểu thị đầ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, đó là tất cả kết quả đầu ra được khai báo trước.
runfiles runfiles; hoặc None; mặc định là None
trình mô tả runfile 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ông cụ).
data_runfiles runfiles; hoặc None; 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 chạy tệp cần tránh")

Chỉ số mô tả runfiles 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; 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 chạy tệp cần tránh")

Chỉ số mô tả runfiles mô tả các 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; mặc định là None
Nếu quy tắc này được đánh dấu executable hoặc test, thì đây là một đối tượng File đại diện cho tệp cần được thực thi để chạy mục tiêu. Theo mặc định, đó là đầu ra được khai báo trước ctx.outputs.executable.

data_runfiles

runfiles DefaultInfo.data_runfiles

Chỉ số mô tả runfiles 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ần phụ thuộc data. Trong hầu hết trường hợp, hãy sử dụng tham số default_runfiles. Bạn có thể xem phần "runfilescác tính năng cần tránh" để biết thông tin chi tiết. Có thể trả về None.

default_runfiles

runfiles DefaultInfo.default_runfiles

Chỉ số mô tả runfiles 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ông cụ). Có thể trả về None.

tệp

depset DefaultInfo.files

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

files_to_run

FilesToRunProvider DefaultInfo.files_to_run

Đối tượng FilesToRunProvider chứa thông tin về tệp thực thi và tệp run 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 được dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào công cụ này. Tính năng này bị tắt bằng ---incompatible_struct_has_no_methods. Sử dụng cờ này để xác minh rằng mã của bạn tương thích với việc mã sắp bị xoá.
Tạo một chuỗi JSON từ tham số cấu trúc. Phương thức này chỉ hoạt động nếu tất cả phần tử cấu trúc (theo quy tắc đệ quy) là chuỗi, số nguyên, boolean, các cấu trúc khác, danh sách các loại này hoặc từ điển có khoá chuỗi và giá trị thuộc các kiểu này. Dấu ngoặc kép và các dòng mới trong chuỗi sẽ đượ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 dùng json.encode(x) hoặc json.encode_indent(x). Các hàm này hoạt động với các giá trị không phải là cấu trúc và không làm ô nhiễm không gian tên của trường cấu trúc.

to_proto

string DefaultInfo.to_proto()

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