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ó trình cung cấp này, ngay cả khi trình cung cấp đó 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
đều có các trường sau:
files
files_to_run
data_runfiles
default_runfiles
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ố
Thông số | Mô tả |
---|---|
files
|
depset; hoặc None ; mặc định là None 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, đó là tất cả các đầu ra được khai báo trước.
|
runfiles
|
runfiles; hoặc None ; 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 một phần phụ thuộc của 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 runfile cần tránh") trình mô tả runfiles mô tả các runfiles mà mục tiêu này cần chạy khi là một phần phụ thuộc thông qua thuộc tínhdata .
|
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 runfile cần tránh") trình mô tả runfiles mô tả các runfiles 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ínhdata .
|
executable
|
Tệp; hoặc None ;
mặc định là None Nếu quy tắc này được đánh dấu là 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, đây là đầu ra được khai báo trước ctx.outputs.executable .
|
data_runfiles
runfiles DefaultInfo.data_runfiles
data
. Trong hầu hết các trường hợp, hãy sử dụng tham số default_runfiles
. Hãy 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
run
hoặc dưới dạng một phần phụ thuộc của công cụ).
Có thể trả về None
.
tệp
depset DefaultInfo.files
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, đó 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
FilesToRunProvider
chứa thông tin về tệp thực thi và tệp chạy của mục tiêu.
Có thể trả về None
.
to_json
string DefaultInfo.to_json()
---incompatible_struct_has_no_methods
. Hãy dùng cờ này để xác minh rằng mã của bạn tương thích với việc xoá sắp tới. 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ả các phần tử cấu trúc (đệ quy) là chuỗi, số nguyên, giá trị 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ị của 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 cho các giá trị khác ngoài cấu trúc và không làm ảnh hưởng đến không gian tên trường cấu trúc.
to_proto
string DefaultInfo.to_proto()
---incompatible_struct_has_no_methods
. Hãy dùng cờ này để xác minh rằng mã của bạn tương thích với việc xoá sắp tới. 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, số nguyên, giá trị boolean, các cấu trúc hoặc từ điển khác 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á cấu trúc đượ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).