Thông tin mặc định

Trình 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 quy tắc không 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
Hãy xem trang quy tắc để biết hướng dẫn chi tiết về cách sử dụng trì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.

Tham số

Thông số Nội dung mô tả
files depset; or None; mặc định = Không có
Một depset gồm các đố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, mọi dữ liệu đầu ra đều được khai báo trước.
runfiles runfiles; or None; mặc định = Không có
chỉ số mô tả tệp chạy 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; or None; mặc định = Không có

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

chỉ số mô tả runfiles mô tả các tệp runfile 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; or None; mặc định = Không có

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

Chỉ số mô tả runfiles mô tả các tệp runfile mà mục tiêu này cần chạy khi là một 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 File; or None; mặc định = Không có
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 đượ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 ở điều kiện là thuộc tính phần 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 nội dung "chạy các tính năng cần tránh" để biết thông tin chi tiết. Có thể trả lại 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ả lại None.

tệp

depset DefaultInfo.files

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

files_to_run

FilesToRunProvider DefaultInfo.files_to_run

Đối tượng FilesToRunProvider chứa thông tin về các tệp thực thi và tệp chạy của mục tiêu. Có thể trả lại None.

to_json

string DefaultInfo.to_json()

Không dùng nữa. API này không còn được dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào nó. Tính năng này sẽ 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á mã sắp xảy ra.
Tạo một chuỗi JSON qua 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 (đệ quy) là chuỗi, ints, boolean, các cấu trúc khác, danh sách các loại này hoặc từ điển có các khóa chuỗi và giá trị thuộc những loại này. Các dấu ngoặc kép và 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 sử dụng json.encode(x) hoặc json.encode_indent(x). Các giá trị này dùng được cho các giá trị khác với cấu trúc và không làm ô nhiễm không gian tên trường cấu trúc.

to_proto

string DefaultInfo.to_proto()

Không dùng nữa. API này không còn được dùng nữa và sẽ sớm bị xoá. Vui lòng không phụ thuộc vào nó. Tính năng này sẽ 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á mã sắp xảy ra.
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 (đệ quy) là chuỗi, int, boolean, các cấu trúc, ký tự chính tả hoặc danh sách thuộc các loại này. Các dấu ngoặc kép và 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 đó dùng proto.encode_text(x).