Hội viên
- tất cả
- analysis_test_transition
- bất kỳ
- archive_override
- khía cạnh
- bazel_dep
- bind
- bool
- configuration_field
- phần phụ thuộc
- dict
- dir
- liệt kê
- exec_group
- thất bại
- float
- getattr
- git_override
- hasattr
- băm
- int
- len
- list
- local_path_override
- tối đa
- phút
- mô-đun
- module_extension
- multiple_version_override
- nhà cung cấp
- dải_ô
- register_execution_platforms()
- register_execution_platforms()
- register_toolchains()
- register_toolchains()
- repository_quy tắc(triển khai, attrs, cục bộ, môi trường, định cấu hình, có thể điều khiển từ xa, tài liệu)
- repository_quy tắc(triển khai, attrs, cục bộ, môi trường, định cấu hình, có thể điều khiển từ xa, tài liệu)
- phản hồi
- đảo ngược
- quy tắc
- chọn
- single_version_override
- được sắp xếp
- str
- tag_class
- tuple
- loại
- use_extension
- use_repo
- khả năng hiển thị
- không gian làm việc
- zip
all
bool all(elements)Trả về true nếu tất cả các phần tử được đánh giá là True hoặc nếu tập hợp trống. Các phần tử được chuyển đổi thành boolean bằng hàm bool.
all(["hello", 3, True]) == True all([-1, 0, 1]) == False
Các tham số
Thông số | Nội dung mô tả |
---|---|
elements
|
bắt buộc Một chuỗi hoặc một tập hợp các phần tử. |
analysis_test_transition
transition analysis_test_transition(settings)
Tạo một lượt chuyển đổi cấu hình để áp dụng cho các phần phụ thuộc của quy tắc kiểm thử phân tích. Việc chuyển đổi này chỉ có thể áp dụng trên các thuộc tính của quy tắc có analysis_test = True
. Những quy tắc như vậy bị hạn chế về khả năng (ví dụ: kích thước của cây phần phụ thuộc bị giới hạn), vì vậy, quá trình chuyển đổi được tạo bằng hàm này bị giới hạn trong phạm vi tiềm năng so với các quá trình chuyển đổi được tạo bằng tính năng chuyển đổi.
Chức năng này chủ yếu được thiết kế để hỗ trợ thư viện cốt lõi Analyze Test Framework (Khung kiểm thử phân tích). Hãy xem tài liệu (hoặc cách triển khai) để biết các phương pháp hay nhất.
Các tham số
Thông số | Nội dung mô tả |
---|---|
settings
|
bắt buộc Từ điển chứa thông tin về các chế độ cài đặt cấu hình sẽ được thiết lập trong quá trình chuyển đổi cấu hình này. Khoá là nhãn cài đặt bản dựng và giá trị là các giá trị mới sau khi chuyển đổi. Tất cả các chế độ cài đặt khác đều không thay đổi. Sử dụng mã này để khai báo các chế độ cài đặt cấu hình cụ thể mà bài kiểm thử phân tích yêu cầu phải thiết lập để đạt. |
Bất kỳ
bool any(elements)Trả về true nếu ít nhất một phần tử được đánh giá là True. Các phần tử được chuyển đổi thành boolean bằng hàm bool.
any([-1, 0, 1]) == True any([False, 0, ""]) == False
Các tham số
Thông số | Nội dung mô tả |
---|---|
elements
|
bắt buộc Một chuỗi hoặc một tập hợp các phần tử. |
archive_override
None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)Chỉ định rằng phần phụ thuộc này phải đến từ một tệp lưu trữ (zip, gzip, v.v.) tại một vị trí nhất định, thay vì từ sổ đăng ký. Chỉ mô-đun gốc mới có thể sử dụng lệnh này; nói cách khác, nếu một mô-đun chỉ định bất kỳ cơ chế ghi đè nào, thì mô-đun đó không thể dùng làm phần phụ thuộc cho người khác.
Các tham số
Thông số | Nội dung mô tả |
---|---|
module_name
|
bắt buộc Tên của phần phụ thuộc mô-đun Bazel để áp dụng chế độ ghi đè này. |
urls
|
string; or Iterable of strings ;
bắt buộcURL của bản lưu trữ; có thể là URL http(s):// hoặc file://. |
integrity
|
default = '' Giá trị tổng kiểm tra dự kiến của tệp lưu trữ, ở định dạng Tính toàn vẹn của tài nguyên phụ. |
strip_prefix
|
default = '' Một tiền tố thư mục để xoá khỏi các tệp đã trích xuất. |
patches
|
Iterable of strings ;
default = []Danh sách các nhãn trỏ đến tệp bản vá để áp dụng cho mô-đun này. Các tệp bản vá phải tồn tại trong cây nguồn của dự án cấp cao nhất. Các quy tắc này được áp dụng theo thứ tự danh sách. |
patch_cmds
|
Iterable of strings ;
default = []Trình tự các lệnh Bash sẽ được áp dụng trên Linux/Macos sau khi áp dụng các bản vá. |
patch_strip
|
default = 0 Giống như đối số --strip của bản vá Unix. |
chương trình thành phần
Aspect aspect(implementation, attr_aspects=[], attrs=None, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None)Tạo ra một khía cạnh mới. Kết quả của hàm này phải được lưu trữ trong giá trị chung. Vui lòng xem phần giới thiệu về các khía cạnh để biết thêm chi tiết.
Các tham số
Thông số | Nội dung mô tả |
---|---|
implementation
|
bắt buộc Hàm Starlark triển khai khía cạnh này, với chính xác hai thông số: Target (mục tiêu mà khía cạnh được áp dụng) và ctx (ngữ cảnh quy tắc tạo mục tiêu). Các thuộc tính của mục tiêu có trong trường ctx.rule . Hàm này được đánh giá trong giai đoạn phân tích đối với mỗi lần áp dụng một thành phần cho mục tiêu.
|
attr_aspects
|
sequence of strings ;
mặc định = []Danh sách tên thuộc tính. Khung hiển thị sẽ truyền đi cùng với các phần phụ thuộc được chỉ định trong các thuộc tính của mục tiêu bằng các tên này. Các giá trị phổ biến ở đây bao gồm deps và exports . Danh sách này cũng có thể chứa một chuỗi "*" để truyền dọc theo tất cả các phần phụ thuộc của một mục tiêu.
|
attrs
|
dict; or None ;
mặc định = KhôngTừ điển khai báo tất cả thuộc tính của khung hình. Tệp này liên kết từ một tên thuộc tính đến một đối tượng thuộc tính, chẳng hạn như "attr.label" hoặc "attr.string" (xem mô-đun attr). Thuộc tính tỷ lệ khung hình có sẵn cho hàm triển khai dưới dạng các trường của tham số ctx . Các thuộc tính ngầm ẩn bắt đầu bằng Các thuộc tính rõ ràng phải có loại |
required_providers
|
mặc định = [] Thuộc tính này cho phép thành phần hiển thị giới hạn việc truyền tải đến các mục tiêu có quy tắc quảng cáo các nhà cung cấp bắt buộc. Giá trị phải là một danh sách chứa từng nhà cung cấp hoặc danh sách nhà cung cấp, chứ không được chứa cả hai. Ví dụ: [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] là giá trị hợp lệ trong khi [FooInfo, BarInfo, [BazInfo, QuxInfo]] không hợp lệ.Danh sách nhà cung cấp không trùng lặp sẽ tự động được chuyển thành danh sách chứa một danh sách nhà cung cấp. Nghĩa là, Để hiển thị một số mục tiêu quy tắc (ví dụ: |
required_aspect_providers
|
default = [] Thuộc tính này cho phép thành phần này kiểm tra các khía cạnh khác. Giá trị phải là một danh sách chứa từng nhà cung cấp hoặc danh sách nhà cung cấp, chứ không được chứa cả hai. Ví dụ: [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] là giá trị hợp lệ trong khi [FooInfo, BarInfo, [BazInfo, QuxInfo]] không hợp lệ.Danh sách nhà cung cấp không trùng lặp sẽ tự động được chuyển thành danh sách chứa một danh sách nhà cung cấp. Nghĩa là, Để hiển thị một khía cạnh khác (ví dụ: |
provides
|
default = [] Danh sách nhà cung cấp mà hàm triển khai phải trả về. Đây là lỗi nếu hàm triển khai bỏ qua bất kỳ loại trình cung cấp nào được liệt kê ở đây khỏi giá trị trả về. Tuy nhiên, hàm triển khai có thể trả về các nhà cung cấp khác không được liệt kê ở đây. Mỗi phần tử của danh sách là một đối tượng |
requires
|
sequence of Aspects ;
mặc định = []Danh sách các thành phần cần được truyền tải trước thành phần này. |
fragments
|
sequence of strings ;
mặc định = []Danh sách tên của các mảnh cấu hình mà khung hiển thị yêu cầu trong cấu hình mục tiêu. |
host_fragments
|
sequence of strings ;
mặc định = []Danh sách tên của các mảnh cấu hình mà khung hiển thị yêu cầu trong cấu hình máy chủ. |
toolchains
|
sequence ;
mặc định = []Nếu được đặt, quy tắc này sẽ yêu cầu bạn phải đặt chuỗi công cụ. Danh sách có thể chứa các đối tượng Chuỗi, Nhãn hoặc StarlarkToolchainTypeApi trong bất kỳ kết hợp nào. Bạn có thể tìm thấy các chuỗi công cụ bằng cách kiểm tra nền tảng hiện tại và cung cấp các chuỗi công cụ này thông qua ctx.toolchain cho quá trình triển khai quy tắc.
|
incompatible_use_toolchain_transition
|
default = False Không dùng nữa, thuộc tính này không còn được sử dụng và nên bị xoá. |
doc
|
default = '' Nội dung mô tả về khía cạnh có thể trích xuất được bằng công cụ tạo tài liệu. |
apply_to_generating_rules
|
mặc định = Sai Nếu đúng, thì khi được áp dụng cho tệp đầu ra, khung hình sẽ áp dụng cho quy tắc tạo của tệp đầu ra. Ví dụ: giả sử một thành phần truyền bắc cầu qua thuộc tính "phụ thuộc" và áp dụng cho thuộc tính "alpha". Giả sử "alpha" có "phụ thuộc = [":beta_output"]", trong đó "beta_output" là đầu ra đã khai báo của khía cạnh "beta". Giả sử "beta" có mục tiêu "charlie" là một trong các giá trị "phụ thuộc". Nếu "áp dụng_alpha_có_các_quy_tắc=True" cho khía cạnh "áp dụng". Sai theo mặc định. |
exec_compatible_with
|
sequence of strings ;
mặc định = []Danh sách các quy tắc ràng buộc trên nền tảng thực thi áp dụng cho mọi thực thể của khía cạnh này. |
exec_groups
|
dict; or None ;
mặc định = KhôngNhập tên nhóm thực thi (chuỗi) thành exec_group s. Nếu được đặt, hãy cho phép các chương trình thành phần chạy hành động trên nhiều nền tảng thực thi trong một thực thể. Hãy xem tài liệu về nhóm thực thi để biết thêm thông tin.
|
bazel_dep
None bazel_dep(name, version='', repo_name='', dev_dependency=False)Khai báo phần phụ thuộc trực tiếp trên một mô-đun Bazel khác.
Các tham số
Thông số | Nội dung mô tả |
---|---|
name
|
bắt buộc Tên của mô-đun cần được thêm vào dưới dạng phần phụ thuộc trực tiếp. |
version
|
default = '' Phiên bản mô-đun sẽ được thêm vào dưới dạng phần phụ thuộc trực tiếp. |
repo_name
|
default = '' Tên của kho lưu trữ bên ngoài đại diện cho phần phụ thuộc này. Theo mặc định, đây là tên của mô-đun. |
dev_dependency
|
mặc định = Sai Nếu là true, phần phụ thuộc này sẽ bị bỏ qua nếu mô-đun hiện tại không phải là mô-đun gốc hoặc "--ignore_dev_dependency" được bật. |
bind
None bind(name, actual=None)
Cảnh báo: bạn không nên sử dụng bind()
. Hãy xem bài viết Cân nhắc việc xoá đường liên kết để nắm được nội dung thảo luận chi tiết về các vấn đề và các phương án thay thế.
Cung cấp bí danh cho mục tiêu trong gói //external
.
Các tham số
Thông số | Nội dung mô tả |
---|---|
name
|
bắt buộc Nhãn bên dưới '//external' để đóng vai trò là tên bí danh |
actual
|
string; or None ;
mặc định = Không cóNhãn thực được đặt bí danh |
bool
bool bool(x=False)Hàm khởi tạo cho loại bool. Phương thức này trả về
False
nếu đối tượng là None
, False
, một chuỗi trống (""
), số 0
hoặc một tập hợp trống (ví dụ: ()
, []
). Nếu không, hàm này sẽ trả về True
.
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
mặc định = False Biến cần chuyển đổi. |
configuration_field
LateBoundDefault configuration_field(fragment, name)Tham chiếu giá trị mặc định giới hạn trễ cho một thuộc tính của loại nhãn. Giá trị "giới hạn muộn" nếu yêu cầu tạo cấu hình trước khi xác định giá trị. Mọi thuộc tính dùng giá trị này làm giá trị đều phải riêng tư.
Ví dụ về cách sử dụng:
Xác định thuộc tính quy tắc:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
Truy cập khi triển khai quy tắc:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
Các tham số
Thông số | Nội dung mô tả |
---|---|
fragment
|
bắt buộc Tên của một mảnh cấu hình chứa giá trị giới hạn trễ. |
name
|
bắt buộc Tên giá trị cần nhận từ mảnh cấu hình. |
phần phụ thuộc
depset depset(direct=None, order="default", *, transitive=None)Tạo một phần phụ thuộc. Tham số
direct
là danh sách các phần tử trực tiếp của phần phụ thuộc, còn tham số transitive
là danh sách các phần phụ thuộc có các phần tử trở thành phần tử gián tiếp của phần phụ thuộc đã tạo. Tham số order
chỉ định thứ tự các phần tử được trả về khi phần phụ thuộc được chuyển đổi thành danh sách. Hãy xem bài viết Tổng quan về phần cài đặt để biết thêm thông tin.
Tất cả các phần tử (trực tiếp và gián tiếp) của một tập hợp phụ thuộc phải cùng loại, như có được qua biểu thức type(x)
.
Vì tập hợp dựa trên hàm băm được dùng để loại bỏ trùng lặp trong quá trình lặp lại, nên tất cả các phần tử của tập hợp phụ thuộc đều phải có thể băm. Tuy nhiên, sự bất biến này hiện chưa được kiểm tra một cách nhất quán trong mọi hàm khởi tạo. Dùng cờ --incompatible_always_check_depset_element để bật tính năng kiểm tra nhất quán. Đây sẽ là hành vi mặc định trong các bản phát hành sau này; hãy xem Vấn đề 10313.
Ngoài ra, các phần tử hiện phải không thể thay đổi được, dù quy định hạn chế này sẽ được nới lỏng trong tương lai.
Thứ tự của các phần phụ thuộc đã tạo phải tương thích với thứ tự của các phần phụ thuộc transitive
. Đơn đặt hàng "default"
tương thích với mọi đơn đặt hàng khác, tất cả các đơn đặt hàng khác chỉ tương thích với chính chúng.
Lưu ý về khả năng tương thích tiến/lùi. Hàm này hiện chấp nhận tham số items
vị trí. Hàm này không được dùng nữa và sẽ bị xoá trong tương lai. Sau khi hàm này bị xoá, direct
sẽ trở thành tham số vị trí duy nhất của hàm depset
. Do đó, cả hai lệnh gọi sau đây đều tương đương nhau và phù hợp với tương lai:
depset(['a', 'b'], transitive = [...]) depset(direct = ['a', 'b'], transitive = [...])
Các tham số
Thông số | Nội dung mô tả |
---|---|
direct
|
sequence; or None ;
mặc định = Không cóDanh sách các phần tử trực tiếp của một phần phụ thuộc. |
order
|
default = "default" Chiến lược truyền tải cho phần phụ thuộc mới. Hãy xem tại đây để biết các giá trị có thể có. |
transitive
|
sequence of depsets; or None ;
default = NoneDanh sách các phần phụ thuộc có phần tử sẽ trở thành phần tử gián tiếp của phần phụ thuộc. |
dict
dict dict(pairs=[], **kwargs)Tạo một từ điển từ một đối số vị trí không bắt buộc và một tập hợp các đối số từ khoá không bắt buộc. Trong trường hợp cùng một khoá được cung cấp nhiều lần, giá trị cuối cùng sẽ được sử dụng. Các mục nhập được cung cấp thông qua đối số từ khoá được xem xét đến sau các mục nhập được cung cấp qua đối số vị trí.
Các tham số
Thông số | Nội dung mô tả |
---|---|
pairs
|
mặc định = [] Một lệnh hoặc một đối tượng có thể lặp lại có phần tử mỗi phần tử có độ dài là 2 (khoá, giá trị). |
kwargs
|
bắt buộc Từ điển của mục nhập bổ sung. |
thư mục
list dir(x)Trả về danh sách chuỗi: tên của thuộc tính và phương thức của đối tượng tham số.
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
bắt buộc Đối tượng cần kiểm tra. |
liệt kê
list enumerate(list, start=0)Trả về danh sách các cặp (bộ giá trị hai phần tử), với chỉ mục (int) và mục từ chuỗi nhập.
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]
Các tham số
Thông số | Nội dung mô tả |
---|---|
list
|
trình tự đầu vào bắt buộc. |
start
|
mặc định = 0 chỉ mục bắt đầu. |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[], copy_from_rule=False)Tạo một nhóm thực thi có thể dùng để tạo các hành động cho một nền tảng thực thi cụ thể trong quá trình triển khai quy tắc.
Các tham số
Thông số | Nội dung mô tả |
---|---|
toolchains
|
sequence ;
mặc định = []Tập hợp chuỗi công cụ mà nhóm thực thi này yêu cầu. Danh sách có thể chứa các đối tượng Chuỗi, Nhãn hoặc StarlarkToolchainTypeApi trong bất kỳ kết hợp nào. |
exec_compatible_with
|
sequence of strings ;
mặc định = []Danh sách các điều kiện ràng buộc trên nền tảng thực thi. |
copy_from_rule
|
default = False Nếu bạn đặt thành true, nhóm thực thi này sẽ kế thừa chuỗi công cụ và quy tắc ràng buộc của quy tắc đính kèm nhóm này. Nếu đặt thành bất kỳ chuỗi nào khác, hệ thống sẽ báo lỗi. |
không thành công
None fail(msg=None, attr=None, *args)Khiến quá trình thực thi không thành công do có lỗi.
Các tham số
Thông số | Nội dung mô tả |
---|---|
msg
|
mặc định = Không có Không dùng nữa: thay vào đó, hãy sử dụng đối số vị trí. Đối số này đóng vai trò như một đối số định vị hàng đầu ngầm ẩn. |
attr
|
string; or None ;
mặc định = Không cóKhông dùng nữa. Yêu cầu thêm tiền tố không bắt buộc chứa chuỗi này vào thông báo lỗi. |
args
|
bắt buộc Danh sách các giá trị có định dạng chuỗi và kết hợp bằng dấu cách sẽ xuất hiện trong thông báo lỗi. |
float
float float(x=unbound)Trả về x dưới dạng một giá trị số thực.
- Nếu
x
đã là một số thực,float
sẽ trả về giá trị không thay đổi. - Nếu
x
là giá trị bool, thìfloat
sẽ trả về 1,0 cho giá trị True và 0,0 cho giá trị False. - Nếu
x
là một số nguyên,float
sẽ trả về giá trị dấu phẩy động hữu hạn gần nhất cho x hoặc lỗi nếu độ lớn quá lớn. - Nếu
x
là một chuỗi, thì giá trị này phải là một giá trị cố định dấu phẩy động hợp lệ hoặc bằng (không phân biệt chữ hoa chữ thường) vớiNaN
,Inf
hoặcInfinity
, đứng sau dấu+
hoặc-
(không bắt buộc).
float()
trả về 0.0.
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
mặc định = không liên kết Giá trị cần chuyển đổi. |
getattr
unknown getattr(x, name, default=unbound)Trả về trường của cấu trúc của tên cho trước nếu có. Nếu không, thao tác này sẽ trả về
default
(nếu được chỉ định) hoặc phát sinh lỗi. getattr(x, "foobar")
tương đương với x.foobar
.getattr(ctx.attr, "myattr") getattr(ctx.attr, "myattr", "mydefault")
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
bắt buộc Cấu trúc có thuộc tính được truy cập. |
name
|
bắt buộc Tên của thuộc tính cấu trúc. |
default
|
mặc định = không liên kết Giá trị mặc định cần trả về trong trường hợp cấu trúc không có thuộc tính của tên đã cho. |
git_override
None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)Chỉ định rằng một phần phụ thuộc phải đến từ một cam kết nhất định của kho lưu trữ Git. Chỉ mô-đun gốc mới có thể sử dụng lệnh này; nói cách khác, nếu một mô-đun chỉ định bất kỳ cơ chế ghi đè nào, thì mô-đun đó không thể dùng làm phần phụ thuộc cho người khác.
Các tham số
Thông số | Nội dung mô tả |
---|---|
module_name
|
bắt buộc Tên của phần phụ thuộc mô-đun Bazel để áp dụng chế độ ghi đè này. |
remote
|
bắt buộc URL của kho lưu trữ Git từ xa. |
commit
|
default = '' Cam kết cần được kiểm tra. |
patches
|
Iterable of strings ;
default = []Danh sách các nhãn trỏ đến tệp bản vá để áp dụng cho mô-đun này. Các tệp bản vá phải tồn tại trong cây nguồn của dự án cấp cao nhất. Các quy tắc này được áp dụng theo thứ tự danh sách. |
patch_cmds
|
Iterable of strings ;
default = []Trình tự các lệnh Bash sẽ được áp dụng trên Linux/Macos sau khi áp dụng các bản vá. |
patch_strip
|
default = 0 Giống như đối số --strip của bản vá Unix. |
hasattr
bool hasattr(x, name)Trả về True nếu đối tượng
x
có một thuộc tính hoặc phương thức của name
đã cho, nếu không thì trả về False. Ví dụ:hasattr(ctx.attr, "myattr")
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
bắt buộc Đối tượng cần kiểm tra. |
name
|
bắt buộc Tên thuộc tính. |
hàm băm
int hash(value)Trả về giá trị băm cho một chuỗi. Điều này được tính toán dựa trên thuật toán tương tự như
String.hashCode()
của Java, cụ thể là: s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]Việc băm các giá trị bên cạnh chuỗi hiện chưa được hỗ trợ.
Các tham số
Thông số | Nội dung mô tả |
---|---|
value
|
bắt buộc Giá trị chuỗi cần băm. |
int
int int(x, base=unbound)Trả về x dưới dạng giá trị int.
- Nếu
x
đã là một số nguyên,int
sẽ trả về giá trị này không thay đổi. - Nếu
x
là giá trị bool, thìint
sẽ trả về 1 cho giá trị True và 0 cho giá trị False. - Nếu
x
là một chuỗi, thì chuỗi đó phải có định dạng<sign><prefix><digits>
.<sign>
có giá trị"+"
,"-"
hoặc trống (được hiểu là dương).<digits>
là một chuỗi các chữ số từ 0 đếnbase
– 1, trong đó các chữ cái từ a đến z (hoặc tương đương là A-Z) được dùng làm chữ số từ 10 đến 35. Trong trường hợpbase
là 2/8/16,<prefix>
là không bắt buộc và có thể là 0b/0o/0x (hoặc tương đương 0B/0O/0X); nếubase
là bất kỳ giá trị nào khác ngoài các cơ số này hoặc giá trị đặc biệt 0, thì tiền tố phải để trống. Trong trường hợpbase
là 0, chuỗi được hiểu là một giá trị cố định số nguyên, theo nghĩa là một trong các cơ số 2/8/10/16 được chọn tùy thuộc vào tiền tố nào được sử dụng. Nếubase
là 0, không có tiền tố nào được dùng và có nhiều hơn một chữ số, thì chữ số đứng đầu không được là 0; điều này nhằm tránh nhầm lẫn giữa bát phân và số thập phân. Độ lớn của số mà chuỗi biểu thị phải nằm trong phạm vi cho phép đối với kiểu số nguyên. - Nếu
x
là số thực,int
sẽ trả về giá trị số nguyên của số thực, làm tròn về 0. Đó là một lỗi nếu x là không hữu hạn (NaN hoặc vô hạn).
x
thuộc loại khác, hoặc nếu giá trị là một chuỗi không đáp ứng định dạng trên. Không giống như hàm int
của Python, hàm này không cho phép các đối số 0 cũng như không cho phép khoảng trắng thừa cho đối số chuỗi.Ví dụ:
int("123") == 123 int("-123") == -123 int("+123") == 123 int("FF", 16) == 255 int("0xFF", 16) == 255 int("10", 0) == 10 int("-0x10", 0) == -16 int("-0x10", 0) == -16 int("123.456") == 123
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
bắt buộc Chuỗi cần chuyển đổi. |
base
|
mặc định = không liên kết Cơ sở dùng để diễn giải giá trị chuỗi; mặc định là 10. Phải nằm trong khoảng từ 2 đến 36 (bao gồm) hoặc 0 để phát hiện cơ số như thể x là một giá trị cố định số nguyên. Không được cung cấp tham số này nếu giá trị không phải là một chuỗi.
|
len
int len(x)Trả về độ dài của một chuỗi, chuỗi (chẳng hạn như danh sách hoặc bộ dữ liệu), dict hoặc đối tượng có thể lặp lại khác.
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
bắt buộc Giá trị có độ dài cần báo cáo. |
danh sách
list list(x=[])Trả về một danh sách mới có cùng các phần tử với giá trị lặp lại đã cho.
list([1, 2]) == [1, 2] list((2, 3, 2)) == [2, 3, 2] list({5: "a", 2: "b", 4: "c"}) == [5, 2, 4]
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
mặc định = [] Đối tượng cần chuyển đổi. |
local_path_override
None local_path_override(module_name, path)Chỉ định rằng một phần phụ thuộc phải đến từ một thư mục nhất định trên ổ đĩa cục bộ. Chỉ mô-đun gốc mới có thể sử dụng lệnh này; nói cách khác, nếu một mô-đun chỉ định bất kỳ cơ chế ghi đè nào, thì mô-đun đó không thể dùng làm phần phụ thuộc cho người khác.
Các tham số
Thông số | Nội dung mô tả |
---|---|
module_name
|
bắt buộc Tên của phần phụ thuộc mô-đun Bazel để áp dụng chế độ ghi đè này. |
path
|
bắt buộc Đường dẫn đến thư mục chứa mô-đun này. |
tối đa
unknown max(*args)Trả về một đối số lớn nhất trong tất cả đối số đã cho. Nếu chỉ có một đối số được cung cấp, thì đối số đó phải là một đối số không thể trống.Đây sẽ là lỗi nếu các phần tử không so sánh được (ví dụ: số nguyên với chuỗi) hoặc nếu không có đối số nào được cung cấp.
max(2, 5, 4) == 5 max([5, 6, 3]) == 6
Các tham số
Thông số | Nội dung mô tả |
---|---|
args
|
bắt buộc Các yếu tố cần kiểm tra. |
phút
unknown min(*args)Trả về một đối số nhỏ nhất trong số tất cả đối số đã cho. Nếu chỉ cung cấp một đối số, đối số đó phải là một đối số không thể trống. Đó là lỗi nếu các phần tử không so sánh được (ví dụ: int với chuỗi) hoặc nếu không có đối số nào được cung cấp.
min(2, 5, 4) == 2 min([5, 6, 3]) == 3
Các tham số
Thông số | Nội dung mô tả |
---|---|
args
|
bắt buộc Các yếu tố cần kiểm tra. |
mô-đun
None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])Khai báo một số thuộc tính của mô-đun Bazel được biểu thị bằng kho lưu trữ Bazel hiện tại. Các thuộc tính này là siêu dữ liệu thiết yếu của mô-đun (chẳng hạn như tên và phiên bản) hoặc ảnh hưởng đến hoạt động của mô-đun hiện tại và các phần phụ thuộc của mô-đun.
Mã này sẽ được gọi tối đa một lần. Bạn chỉ có thể bỏ qua mô-đun này nếu mô-đun này là mô-đun gốc (như trong trường hợp mô-đun này không phụ thuộc vào một mô-đun khác).
Các tham số
Thông số | Nội dung mô tả |
---|---|
name
|
default = '' Tên của mô-đun. Chỉ có thể bỏ qua nếu mô-đun này là mô-đun gốc (như trong trường hợp mô-đun này không phụ thuộc vào một mô-đun khác). Tên mô-đun hợp lệ phải: 1) chỉ chứa chữ cái viết thường (a-z), chữ số (0-9), dấu chấm (.), dấu gạch nối (-) và dấu gạch dưới (_); 2) bắt đầu bằng một chữ cái viết thường; 3) kết thúc bằng một chữ cái viết thường hoặc chữ số. |
version
|
default = '' Phiên bản của mô-đun. Chỉ có thể bỏ qua nếu mô-đun này là mô-đun gốc (như trong trường hợp mô-đun này không phụ thuộc vào một mô-đun khác). |
compatibility_level
|
default = 0 Mức độ tương thích của mô-đun; bạn nên thay đổi mức này mỗi khi có sự thay đổi lớn không tương thích. Về cơ bản, đây là "phiên bản chính" của mô-đun xét theo SemVer, ngoại trừ việc mô-đun này không được nhúng trong chuỗi phiên bản mà tồn tại dưới dạng một trường riêng biệt. Các mô-đun có mức độ tương thích khác nhau tham gia vào quá trình phân giải phiên bản như thể đó là các mô-đun có tên khác nhau, nhưng biểu đồ phần phụ thuộc cuối cùng không thể chứa nhiều mô-đun có cùng tên nhưng khác mức độ tương thích (trừ khi multiple_version_override có hiệu lực; hãy xem tại đó để biết thêm chi tiết).
|
repo_name
|
default = '' Tên của kho lưu trữ đại diện cho mô-đun này, như được hiển thị bởi chính mô-đun. Theo mặc định, tên của kho lưu trữ là tên của mô-đun. Bạn có thể chỉ định tên này để dễ dàng di chuyển cho các dự án đã sử dụng tên kho lưu trữ khác với tên mô-đun của chính kho lưu trữ đó. |
bazel_compatibility
|
Iterable of strings ;
default = []Danh sách các phiên bản bazel cho phép người dùng khai báo những phiên bản Bazel tương thích với mô-đun này. Chính sách này KHÔNG ảnh hưởng đến việc phân giải phần phụ thuộc, nhưng bzlmod sẽ sử dụng thông tin này để kiểm tra xem phiên bản Bazel hiện tại của bạn có tương thích hay không. Định dạng của giá trị này là một chuỗi gồm một số giá trị ràng buộc được phân tách bằng dấu phẩy. Ba điều kiện ràng buộc được hỗ trợ: <=X.X.X: Phiên bản Bazel phải bằng hoặc cũ hơn X.X.X. Được dùng khi có thay đổi đã biết không tương thích trong phiên bản mới hơn. >=X.X.X: Phiên bản Bazel phải bằng hoặc mới hơn X.X.X.Được sử dụng khi bạn phụ thuộc vào một số tính năng chỉ có từ X.X.X. -X.X.X: Phiên bản Bazel X.X.X không tương thích. Dùng khi lỗi trong X.X.X gây ra lỗi cho bạn, nhưng được khắc phục trong các phiên bản sau. |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc='')Tạo một tiện ích mô-đun mới. Lưu trữ mã này trong một giá trị chung để có thể xuất và sử dụng trong tệp MODULE.bazel.
Các tham số
Thông số | Nội dung mô tả |
---|---|
implementation
|
bắt buộc Hàm triển khai tiện ích mô-đun này. Phải lấy một tham số duy nhất là module_ctx . Hàm này được gọi một lần khi bắt đầu bản dựng để xác định tập hợp các kho lưu trữ có sẵn.
|
tag_classes
|
default = {} Từ điển để khai báo tất cả các lớp thẻ mà tiện ích sử dụng. Phương thức này ánh xạ từ tên của lớp thẻ đến đối tượng tag_class .
|
doc
|
default = '' Nội dung mô tả về tiện ích mô-đun có thể được trích xuất bằng công cụ tạo tài liệu. |
multiple_version_override
None multiple_version_override(module_name, versions, registry='')Chỉ định rằng một phần phụ thuộc vẫn phải đến từ sổ đăng ký, nhưng nhiều phiên bản của phần phụ thuộc đó phải được phép cùng tồn tại. Chỉ mô-đun gốc mới có thể sử dụng lệnh này; nói cách khác, nếu một mô-đun chỉ định bất kỳ cơ chế ghi đè nào, thì mô-đun đó không thể dùng làm phần phụ thuộc cho người khác.
Các tham số
Thông số | Nội dung mô tả |
---|---|
module_name
|
bắt buộc Tên của phần phụ thuộc mô-đun Bazel để áp dụng chế độ ghi đè này. |
versions
|
Iterable of strings ;
bắt buộcChỉ định rõ ràng các phiên bản được phép cùng tồn tại. Các phiên bản này phải đã có trong quá trình chọn trước biểu đồ phần phụ thuộc. Các phần phụ thuộc trên mô-đun này sẽ được "nâng cấp" lên phiên bản được phép gần nhất ở cùng mức độ tương thích, còn những phần phụ thuộc có phiên bản cao hơn bất kỳ phiên bản nào được phép ở cùng mức độ tương thích sẽ gây ra lỗi. |
registry
|
default = '' Ghi đè sổ đăng ký cho mô-đun này; thay vì tìm mô-đun này từ danh sách đăng ký mặc định, bạn nên sử dụng sổ đăng ký đã cho. |
in
None print(sep=" ", *args)In
args
dưới dạng kết quả gỡ lỗi. Chuỗi này sẽ có tiền tố là chuỗi "DEBUG"
và vị trí (tệp và số dòng) của lệnh gọi này. Cách chính xác để chuyển đổi các đối số thành chuỗi chưa được chỉ định và có thể thay đổi bất cứ lúc nào. Cụ thể, định dạng này có thể khác (và chi tiết hơn) định dạng do str()
và repr()
thực hiện.Bạn không nên sử dụng print
trong mã phát hành chính thức do mã này tạo ra nội dung rác cho người dùng. Đối với những trường hợp không dùng nữa, hãy ưu tiên lỗi cứng bằng cách sử dụng fail()
bất cứ khi nào có thể.
Các tham số
Thông số | Nội dung mô tả |
---|---|
sep
|
mặc định = " " Chuỗi dòng phân cách giữa các đối tượng, mặc định là dấu cách (" "). |
args
|
bắt buộc Các đối tượng cần in. |
nhà cung cấp
unknown provider(doc='', *, fields=None, init=None)Xác định biểu tượng nhà cung cấp. Trình cung cấp có thể được tạo thực thể bằng cách gọi hoặc dùng trực tiếp làm khoá để truy xuất một thực thể của trình cung cấp đó qua một mục tiêu. Ví dụ:
MyInfo = provider() ... def _my_library_impl(ctx): ... my_info = MyInfo(x = 2, y = 3) # my_info.x == 2 # my_info.y == 3 ...
Xem Quy tắc (Nhà cung cấp) để biết hướng dẫn đầy đủ về cách sử dụng nhà cung cấp.
Trả về giá trị có thể gọi Provider
nếu bạn không chỉ định init
.
Nếu bạn chỉ định init
, hàm này sẽ trả về một bộ dữ liệu gồm 2 phần tử: giá trị có thể gọi Provider
và giá trị có thể gọi hàm khởi tạo thô. Xem Quy tắc (Khởi chạy tuỳ chỉnh của nhà cung cấp tuỳ chỉnh) và thảo luận về tham số init
bên dưới để biết thông tin chi tiết.
Các tham số
Thông số | Nội dung mô tả |
---|---|
doc
|
default = '' Mô tả về trình cung cấp có thể được trích xuất bằng công cụ tạo tài liệu. |
fields
|
sequence of strings; or dict; or None ;
mặc định = Không cóNếu được chỉ định, hãy hạn chế tập hợp các trường được phép. Các giá trị có thể là:
|
init
|
callable; or None ;
mặc định = Không cóLệnh gọi lại (không bắt buộc) để xử lý trước và xác thực các giá trị trường của trình cung cấp trong quá trình tạo thực thể. Nếu bạn chỉ định init , provider() sẽ trả về một bộ dữ liệu gồm 2 phần tử: biểu tượng nhà cung cấp thông thường và hàm khởi tạo thô.Phần mô tả chính xác như sau; xem Quy tắc (Khởi chạy tuỳ chỉnh của nhà cung cấp) để thảo luận và các trường hợp sử dụng trực quan. Cho phép
init không được cung cấp, thì lệnh gọi đến biểu tượng P sẽ đóng vai trò như một lệnh gọi đến hàm hàm khởi tạo mặc định c ; nói cách khác, P(*args, **kwargs) sẽ trả về c(*args, **kwargs) . Ví dụ:MyInfo = provider() m = MyInfo(foo = 1)sẽ trình bày rõ ràng để m là một thực thể MyInfo có m.foo == 1 .Nhưng trong trường hợp bạn chỉ định
Lưu ý: các bước trên ngụ ý rằng một lỗi sẽ xảy ra nếu Bằng cách này, lệnh gọi lại Khi MyInfo, _new_myinfo = provider(init = ...) |
phạm vi
sequence range(start_or_stop, stop_or_none=None, step=1)Tạo một danh sách gồm các mục đi từ
start
đến stop
, sử dụng số gia step
. Nếu bạn cung cấp một đối số duy nhất, các mục sẽ nằm trong khoảng từ 0 đến phần tử đó.range(4) == [0, 1, 2, 3] range(3, 9, 2) == [3, 5, 7] range(3, 0, -1) == [3, 2, 1]
Các tham số
Thông số | Nội dung mô tả |
---|---|
start_or_stop
|
bắt buộc Giá trị của phần tử bắt đầu nếu cung cấp điểm dừng, nếu không thì giá trị của điểm dừng và điểm bắt đầu thực tế là 0 |
stop_or_none
|
int; or None ;
mặc định = Khôngchỉ mục không bắt buộc của mục đầu tiên không được đưa vào danh sách kết quả; việc tạo danh sách sẽ dừng trước khi đạt đến stop .
|
step
|
mặc định = 1 Mức tăng (mặc định là 1). Giá trị này có thể mang giá trị âm. |
register_execution_platforms()
None register_execution_platforms(*platform_labels)Đăng ký một nền tảng đã được xác định để Bazel có thể sử dụng nền tảng đó làm nền tảng thực thi trong quá trình phân giải của chuỗi công cụ.
Các tham số
Thông số | Nội dung mô tả |
---|---|
platform_labels
|
sequence of strings ;
bắt buộcNhãn của các nền tảng cần đăng ký. |
register_execution_platforms()
None register_execution_platforms(*platform_labels)Chỉ định các nền tảng thực thi đã xác định để đăng ký khi mô-đun này được chọn. Phải là các mẫu mục tiêu tuyệt đối (tức là bắt đầu bằng
@
hoặc //
). Xem phần giải pháp của chuỗi công cụ để biết thêm thông tin.
Các tham số
Thông số | Nội dung mô tả |
---|---|
platform_labels
|
sequence of strings ;
bắt buộcNhãn của các nền tảng cần đăng ký. |
register_toolchains()
None register_toolchains(*toolchain_labels)Đăng ký một chuỗi công cụ đã xác định sẵn để Bazel có thể sử dụng chuỗi công cụ đó trong quá trình phân giải chuỗi công cụ. Xem ví dụ về việc xác định và đăng ký chuỗi công cụ.
Các tham số
Thông số | Nội dung mô tả |
---|---|
toolchain_labels
|
sequence of strings ;
bắt buộcNhãn của các chuỗi công cụ cần đăng ký. |
register_toolchains()
None register_toolchains(*toolchain_labels)Chỉ định các chuỗi công cụ đã xác định cần đăng ký khi mô-đun này được chọn. Phải là các mẫu mục tiêu tuyệt đối (tức là bắt đầu bằng
@
hoặc //
). Xem phần giải pháp của chuỗi công cụ để biết thêm thông tin.
Các tham số
Thông số | Nội dung mô tả |
---|---|
toolchain_labels
|
sequence of strings ;
bắt buộcNhãn của các chuỗi công cụ cần đăng ký. |
kho lưu trữ quy tắc(implementation, attrs, cục bộ, môi trường, định cấu hình, điều khiển từ xa, tài liệu)
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')Tạo quy tắc kho lưu trữ mới. Lưu trữ tệp này trong một giá trị chung để có thể tải và gọi tệp từ tệp WORKSPACE.
Các tham số
Thông số | Nội dung mô tả |
---|---|
implementation
|
bắt buộc hàm triển khai quy tắc này. Phải có một tham số duy nhất là repository_ctx . Hàm này được gọi trong giai đoạn tải cho mỗi phiên bản của quy tắc.
|
attrs
|
dict; or None ;
mặc định = Không cótừ điển để khai báo tất cả thuộc tính của quy tắc. Tham số này ánh xạ từ tên thuộc tính đến một đối tượng thuộc tính (xem mô-đun attr). Các thuộc tính bắt đầu bằng _ là riêng tư và có thể dùng để thêm phần phụ thuộc ngầm định trên nhãn vào tệp (quy tắc kho lưu trữ không thể phụ thuộc vào cấu phần phần mềm đã tạo). Thuộc tính name được ngầm thêm vào và không được chỉ định.
|
local
|
mặc định = Sai Cho biết rằng quy tắc này tìm nạp mọi thứ từ hệ thống cục bộ và cần được đánh giá lại mỗi lần tìm nạp. |
environ
|
sequence of strings ;
mặc định = []Cung cấp danh sách biến môi trường mà quy tắc kho lưu trữ này phụ thuộc. Nếu một biến môi trường trong danh sách đó thay đổi, thì kho lưu trữ sẽ được tìm nạp lại. |
configure
|
mặc định = Sai Cho biết rằng kho lưu trữ kiểm tra hệ thống cho mục đích định cấu hình |
remotable
|
mặc định = Sai Thử nghiệm. Đây là thông số thử nghiệm và có thể thay đổi bất cứ lúc nào. Vui lòng không phụ thuộc vào công cụ này. Bạn có thể bật tính năng này trong giai đoạn thử nghiệm bằng cách đặt ---experimental_repo_remote_exec Tương thích với tính năng thực thi từ xa |
doc
|
default = '' Nội dung mô tả về quy tắc lưu trữ có thể được trích xuất bằng công cụ tạo tài liệu. |
kho lưu trữ quy tắc(implementation, attrs, cục bộ, môi trường, định cấu hình, điều khiển từ xa, tài liệu)
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')Tạo quy tắc kho lưu trữ mới. Lưu trữ tệp này trong một giá trị chung để có thể tải và gọi tệp từ tệp WORKSPACE.
Các tham số
Thông số | Nội dung mô tả |
---|---|
implementation
|
bắt buộc hàm triển khai quy tắc này. Phải có một tham số duy nhất là repository_ctx . Hàm này được gọi trong giai đoạn tải cho mỗi phiên bản của quy tắc.
|
attrs
|
dict; or None ;
mặc định = Không cótừ điển để khai báo tất cả thuộc tính của quy tắc. Tham số này ánh xạ từ tên thuộc tính đến một đối tượng thuộc tính (xem mô-đun attr). Các thuộc tính bắt đầu bằng _ là riêng tư và có thể dùng để thêm phần phụ thuộc ngầm định trên nhãn vào tệp (quy tắc kho lưu trữ không thể phụ thuộc vào cấu phần phần mềm đã tạo). Thuộc tính name được ngầm thêm vào và không được chỉ định.
|
local
|
mặc định = Sai Cho biết rằng quy tắc này tìm nạp mọi thứ từ hệ thống cục bộ và cần được đánh giá lại mỗi lần tìm nạp. |
environ
|
sequence of strings ;
mặc định = []Cung cấp danh sách biến môi trường mà quy tắc kho lưu trữ này phụ thuộc. Nếu một biến môi trường trong danh sách đó thay đổi, thì kho lưu trữ sẽ được tìm nạp lại. |
configure
|
mặc định = Sai Cho biết rằng kho lưu trữ kiểm tra hệ thống cho mục đích định cấu hình |
remotable
|
mặc định = Sai Thử nghiệm. Đây là thông số thử nghiệm và có thể thay đổi bất cứ lúc nào. Vui lòng không phụ thuộc vào công cụ này. Bạn có thể bật tính năng này trong giai đoạn thử nghiệm bằng cách đặt ---experimental_repo_remote_exec Tương thích với tính năng thực thi từ xa |
doc
|
default = '' Nội dung mô tả về quy tắc lưu trữ có thể được trích xuất bằng công cụ tạo tài liệu. |
lặp lại
string repr(x)Chuyển đổi đối tượng bất kỳ thành kiểu biểu diễn dạng chuỗi. Điều này rất hữu ích khi gỡ lỗi.
repr("ab") == '"ab"'
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
bắt buộc Đối tượng cần chuyển đổi. |
đã đảo ngược
list reversed(sequence)Trả về một danh sách mới, không được cố định chứa các phần tử của chuỗi lặp lại ban đầu theo thứ tự đảo ngược.
reversed([3, 5, 4]) == [4, 5, 3]
Các tham số
Thông số | Nội dung mô tả |
---|---|
sequence
|
bắt buộc Trình tự có thể lặp lại (ví dụ: danh sách) cần được đảo ngược. |
quy tắc
callable rule(implementation, test=False, attrs=None, outputs=None, executable=False, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, provides=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, compile_one_filetype=None, name=None)Tạo quy tắc mới, có thể được gọi từ tệp BUILD hoặc macro để tạo mục tiêu.
Bạn phải chỉ định quy tắc cho các biến toàn cục trong tệp .bzl; tên của biến toàn cục là tên của quy tắc.
Các quy tắc kiểm thử bắt buộc phải có tên kết thúc bằng _test
, trong khi tất cả các quy tắc khác không được có hậu tố này. (Hạn chế này chỉ áp dụng cho các quy tắc, không áp dụng cho mục tiêu của các quy tắc đó).
Các tham số
Thông số | Nội dung mô tả |
---|---|
implementation
|
bắt buộc hàm Starlark triển khai quy tắc này phải có chính xác một thông số: ctx. Hàm được gọi trong giai đoạn phân tích cho mỗi trường hợp của quy tắc. Ứng dụng có thể truy cập vào các thuộc tính do người dùng cung cấp. Hàm này phải tạo các thao tác để tạo tất cả kết quả đầu ra đã khai báo. |
test
|
mặc định = Sai Liệu quy tắc này có phải là quy tắc thử nghiệm hay không, tức là quy tắc này có thể là chủ thể của lệnh blaze test hay không. Tất cả các quy tắc kiểm thử sẽ tự động được coi là có thể thực thi. Bạn không cần thiết (và không nên) đặt executable = True một cách rõ ràng cho một quy tắc kiểm thử. Hãy xem trang Quy tắc để biết thêm thông tin.
|
attrs
|
dict; or None ;
mặc định = Không cótừ điển để khai báo tất cả thuộc tính của quy tắc. Tham số này ánh xạ từ tên thuộc tính đến một đối tượng thuộc tính (xem mô-đun attr). Các thuộc tính bắt đầu bằng _ là riêng tư và có thể dùng để thêm phần phụ thuộc ngầm định vào nhãn. Thuộc tính name được ngầm thêm vào và không được chỉ định. Các thuộc tính visibility , deprecation , tags , testonly và features được thêm ngầm và không thể ghi đè. Hầu hết các quy tắc chỉ cần một vài thuộc tính. Để hạn chế mức sử dụng bộ nhớ, hàm quy tắc đặt ra giới hạn cho kích thước của các thuộc tính.
|
outputs
|
dict; or None; or function ;
mặc định = KhôngKhông dùng nữa. Tham số 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_no_rule_outputs_param . 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á. Tham số này không được dùng nữa. Di chuyển các quy tắc để sử dụng OutputGroupInfo hoặc attr.output . Giản đồ để xác định dữ liệu đầu ra được khai báo trước. Không giống như thuộc tính Giá trị của đối số này là từ điển hoặc hàm callback cho ra từ điển. Lệnh gọi lại hoạt động tương tự như các thuộc tính phụ thuộc được tính toán: Tên tham số của hàm được so khớp với thuộc tính của quy tắc, do đó, chẳng hạn như nếu bạn truyền Mỗi mục nhập trong từ điển sẽ tạo một đầu ra được khai báo trước, trong đó khoá là giá trị nhận dạng và giá trị là một mẫu chuỗi xác định nhãn của dữ liệu đầu ra. Trong hàm triển khai của quy tắc, giá trị nhận dạng trở thành tên trường dùng để truy cập vào
Trong thực tế, phần giữ chỗ thay thế phổ biến nhất là |
executable
|
mặc định = Sai Liệu quy tắc này có được xem là có thể thực thi hay không, tức là quy tắc này có thể là chủ thể của lệnh blaze run hay không. Hãy xem trang Quy tắc để biết thêm thông tin.
|
output_to_genfiles
|
default = False Nếu là true, tệp sẽ được tạo trong thư mục genfiles thay vì thư mục bin. Không đặt cờ này trừ phi bạn cần để tương thích với các quy tắc hiện có (ví dụ: khi tạo tệp tiêu đề cho C++). |
fragments
|
sequence of strings ;
mặc định = []Danh sách tên của các mảnh cấu hình mà quy tắc yêu cầu trong cấu hình mục tiêu. |
host_fragments
|
sequence of strings ;
mặc định = []Danh sách tên của các mảnh cấu hình mà quy tắc yêu cầu trong cấu hình máy chủ. |
_skylark_testable
|
mặc định = Sai (Thử nghiệm) Nếu đúng, quy tắc này sẽ hiển thị các hành động của quy tắc để kiểm tra theo các quy tắc phụ thuộc vào quy tắc thông qua trình cung cấp Hành động. Trình cung cấp này cũng khả dụng cho chính quy tắc bằng cách gọi ctx.created_actions(). Bạn chỉ nên sử dụng phương thức này để kiểm tra hành vi trong thời gian phân tích của các quy tắc Starlark. Cờ này có thể bị xoá trong tương lai. |
toolchains
|
sequence ;
mặc định = []Nếu được đặt, quy tắc này sẽ yêu cầu bạn phải đặt chuỗi công cụ. Danh sách có thể chứa các đối tượng Chuỗi, Nhãn hoặc StarlarkToolchainTypeApi trong bất kỳ kết hợp nào. Bạn có thể tìm thấy các chuỗi công cụ bằng cách kiểm tra nền tảng hiện tại và cung cấp các chuỗi công cụ này thông qua ctx.toolchain cho quá trình triển khai quy tắc.
|
incompatible_use_toolchain_transition
|
default = False Không dùng nữa, thuộc tính này không còn được sử dụng và nên bị xoá. |
doc
|
default = '' Nội dung mô tả về quy tắc có thể được trích xuất bằng công cụ tạo tài liệu. |
provides
|
default = [] Danh sách nhà cung cấp mà hàm triển khai phải trả về. Đây là lỗi nếu hàm triển khai bỏ qua bất kỳ loại trình cung cấp nào được liệt kê ở đây khỏi giá trị trả về. Tuy nhiên, hàm triển khai có thể trả về các nhà cung cấp khác không được liệt kê ở đây. Mỗi phần tử của danh sách là một đối tượng |
exec_compatible_with
|
sequence of strings ;
mặc định = []Danh sách các quy tắc ràng buộc trên nền tảng thực thi áp dụng cho mọi mục tiêu của loại quy tắc này. |
analysis_test
|
mặc định = Sai Nếu đúng thì quy tắc này được coi là kiểm thử phân tích. Lưu ý: Các quy tắc kiểm thử trong công cụ Phân tích chủ yếu được xác định bằng cách sử dụng cơ sở hạ tầng được cung cấp trong các thư viện Starlark chính. Hãy xem bài viết Thử nghiệm để biết hướng dẫn. Nếu một quy tắc được xác định là quy tắc kiểm tra bản phân tích, thì quy tắc đó được phép sử dụng các lượt chuyển đổi cấu hình được xác định bằng cách sử dụng analysis_test_transition trên các thuộc tính của quy tắc đó, nhưng chọn áp dụng một số hạn chế:
|
build_setting
|
BuildSetting; or None ;
mặc định = KhôngNếu được đặt, hãy mô tả loại build setting của quy tắc này. Xem mô-đun config . Nếu bạn đặt chính sách này, hệ thống sẽ tự động thêm thuộc tính bắt buộc có tên "build_setting_default" vào quy tắc này, với loại tương ứng với giá trị được truyền vào đây.
|
cfg
|
mặc định = Không có Nếu được đặt, hãy trỏ đến phần chuyển đổi cấu hình mà quy tắc sẽ áp dụng cho cấu hình của chính quy tắc đó trước khi phân tích. |
exec_groups
|
dict; or None ;
mặc định = KhôngNhập tên nhóm thực thi (chuỗi) thành exec_group s. Nếu được đặt, hãy cho phép các quy tắc chạy các hành động trên nhiều nền tảng thực thi trong một mục tiêu duy nhất. Hãy xem tài liệu về nhóm thực thi để biết thêm thông tin.
|
compile_one_filetype
|
sequence of strings; or None ;
mặc định = Không cóĐược sử dụng bởi --compile_one_subtitle: nếu nhiều quy tắc sử dụng tệp được chỉ định, thì chúng ta có nên chọn quy tắc này thay vì các quy tắc khác không. |
name
|
string; or None ;
mặc định = KhôngKhông dùng nữa. Tham số 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_remove_rule_name_parameter . 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á. Không dùng nữa: không sử dụng. Tên của quy tắc này, theo cách hiểu của Bazel và được báo cáo trong các bối cảnh như ghi nhật ký, Nếu bạn bỏ qua tham số này, thì tên của quy tắc sẽ được đặt thành tên của biến toàn cầu Starlark đầu tiên được liên kết với quy tắc này trong mô-đun .bzl được khai báo. Do đó, Việc chỉ định tên rõ ràng cho quy tắc sẽ không thay đổi nơi bạn được phép tạo thực thể cho quy tắc. |
chọn
unknown select(x, no_match_error='')
select()
là hàm trợ giúp tạo thuộc tính quy tắc có thể định cấu hình. Xem nội dung bách khoa toàn thư về xây dựng để biết thông tin chi tiết.
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
bắt buộc Một lệnh ánh xạ điều kiện cấu hình với các giá trị. Mỗi khoá là một Nhãn hoặc một chuỗi nhãn giúp xác định một thực thể config_setting hoặcconstrain_value. Xem tài liệu về macro để biết thời điểm sử dụng Nhãn thay vì chuỗi. |
no_match_error
|
mặc định = '' Lỗi tuỳ chỉnh (không bắt buộc) cần báo cáo nếu không có điều kiện nào khớp. |
single_version_override
None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)Chỉ định rằng phần phụ thuộc vẫn phải đến từ sổ đăng ký, nhưng phiên bản của phần phụ thuộc đó phải được ghim, hoặc sổ đăng ký bị ghi đè hoặc danh sách các bản vá được áp dụng. Chỉ mô-đun gốc mới có thể sử dụng lệnh này; nói cách khác, nếu một mô-đun chỉ định bất kỳ cơ chế ghi đè nào, thì mô-đun đó không thể dùng làm phần phụ thuộc cho người khác.
Các tham số
Thông số | Nội dung mô tả |
---|---|
module_name
|
bắt buộc Tên của phần phụ thuộc mô-đun Bazel để áp dụng chế độ ghi đè này. |
version
|
default = '' Ghi đè phiên bản đã khai báo của mô-đun này trong biểu đồ phần phụ thuộc. Nói cách khác, mô-đun này sẽ được "ghim" vào phiên bản ghi đè này. Bạn có thể bỏ qua thuộc tính này nếu tất cả thuộc tính muốn ghi đè là sổ đăng ký hoặc bản vá. |
registry
|
default = '' Ghi đè sổ đăng ký cho mô-đun này; thay vì tìm mô-đun này từ danh sách đăng ký mặc định, bạn nên sử dụng sổ đăng ký đã cho. |
patches
|
Iterable of strings ;
default = []Danh sách các nhãn trỏ đến tệp bản vá để áp dụng cho mô-đun này. Các tệp bản vá phải tồn tại trong cây nguồn của dự án cấp cao nhất. Các quy tắc này được áp dụng theo thứ tự danh sách. |
patch_cmds
|
Iterable of strings ;
default = []Trình tự các lệnh Bash sẽ được áp dụng trên Linux/Macos sau khi áp dụng các bản vá. |
patch_strip
|
default = 0 Giống như đối số --strip của bản vá Unix. |
đã sắp xếp
list sorted(iterable, *, key=None, reverse=False)Trả về danh sách đã sắp xếp mới chứa tất cả phần tử của trình tự lặp lại đã cung cấp. Lỗi có thể xảy ra nếu không thể so sánh bất kỳ cặp phần tử x, y nào bằng cách sử dụng x < y. Các phần tử được sắp xếp theo thứ tự tăng dần, trừ phi đối số ngược là True. Trong trường hợp này, thứ tự sẽ giảm dần. Sắp xếp ổn định: các phần tử so sánh ngang nhau vẫn giữ thứ tự tương đối ban đầu.
sorted([3, 5, 4]) == [3, 4, 5]
Các tham số
Thông số | Nội dung mô tả |
---|---|
iterable
|
bắt buộc Trình tự lặp lại để sắp xếp. |
key
|
mặc định = Không có Hàm không bắt buộc áp dụng cho từng phần tử trước khi so sánh. |
reverse
|
mặc định = Sai Trả về kết quả theo thứ tự giảm dần. |
str
string str(x)Chuyển đổi đối tượng bất kỳ thành chuỗi. Điều này rất hữu ích khi gỡ lỗi.
str("ab") == "ab" str(8) == "8"
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
bắt buộc Đối tượng cần chuyển đổi. |
tag_class
tag_class tag_class(attrs={}, *, doc='')Tạo đối tượng tag_class mới để xác định giản đồ thuộc tính cho một lớp thẻ. Đây là các đối tượng dữ liệu có thể sử dụng được trong tiện ích mô-đun.
Các tham số
Thông số | Nội dung mô tả |
---|---|
attrs
|
default = {} Một từ điển để khai báo tất cả thuộc tính của lớp thẻ này. Tham số này ánh xạ từ tên thuộc tính đến một đối tượng thuộc tính (xem mô-đun attr). |
doc
|
default = '' Nội dung mô tả về lớp thẻ có thể được trích xuất bằng công cụ tạo tài liệu. |
tuple
tuple tuple(x=())Trả về một bộ dữ liệu có cùng phần tử với giá trị lặp lại đã cho.
tuple([1, 2]) == (1, 2) tuple((2, 3, 2)) == (2, 3, 2) tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
mặc định = () Đối tượng cần chuyển đổi. |
loại
string type(x)Trả về tên loại của đối số. Việc này rất hữu ích khi gỡ lỗi và kiểm tra loại. Ví dụ:
type(2) == "int" type([1]) == "list" type(struct(a = 2)) == "struct"Chức năng này có thể thay đổi trong tương lai. Để viết mã tương thích với Python và phù hợp với tương lai, chỉ sử dụng mã này để so sánh các giá trị trả về:
if type(x) == type([]): # if x is a list
Các tham số
Thông số | Nội dung mô tả |
---|---|
x
|
bắt buộc Đối tượng cần kiểm tra loại. |
use_extension
module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False)Trả về đối tượng proxy đại diện cho một tiện ích mô-đun; các phương thức của đối tượng này có thể được gọi để tạo thẻ tiện ích mô-đun.
Các tham số
Thông số | Nội dung mô tả |
---|---|
extension_bzl_file
|
bắt buộc Nhãn cho tệp Starlark xác định đuôi mô-đun. |
extension_name
|
bắt buộc Tên của tiện ích mô-đun cần sử dụng. Biểu tượng có tên này phải được xuất bằng tệp Starlark. |
dev_dependency
|
mặc định = Sai Nếu đúng, việc sử dụng tiện ích mô-đun này sẽ bị bỏ qua nếu mô-đun hiện tại không phải là mô-đun gốc hoặc "--ignore_dev_dependency" được bật. |
use_repo
None use_repo(extension_proxy, *args, **kwargs)Nhập một hoặc nhiều kho lưu trữ được tạo bởi tiện ích mô-đun đã cho vào phạm vi của mô-đun hiện tại.
Các tham số
Thông số | Nội dung mô tả |
---|---|
extension_proxy
|
bắt buộc Đối tượng proxy tiện ích mô-đun được trả về bởi lệnh gọi use_extension .
|
args
|
bắt buộc Tên của các kho lưu trữ cần nhập. |
kwargs
|
bắt buộc Chỉ định một số kho lưu trữ nhất định để nhập vào phạm vi của mô-đun hiện tại với các tên khác. Các khoá phải là tên để sử dụng trong phạm vi hiện tại, trong khi giá trị phải là tên gốc mà tiện ích mô-đun xuất ra. |
mức hiển thị
None visibility(value)
Đặt chế độ hiển thị tải của mô-đun .bzl hiện đang được khởi chạy.
Chế độ hiển thị tải của một mô-đun kiểm soát liệu các tệp BUILD và .bzl khác có thể tải mô-đun đó hay không. (Chế độ hiển thị này khác với chế độ hiển thị mục tiêu của tệp nguồn .bzl cơ bản, tệp này chi phối việc tệp có thể xuất hiện dưới dạng phần phụ thuộc của các mục tiêu khác hay không.) Chế độ hiển thị tải hoạt động ở cấp gói: Để tải một mô-đun, tệp thực hiện tải phải nằm trong gói đã được cấp chế độ hiển thị cho mô-đun. Mô-đun luôn có thể được tải trong gói riêng, bất kể chế độ hiển thị của mô-đun đó.
visibility()
chỉ có thể được gọi một lần cho mỗi tệp .bzl và chỉ ở cấp cao nhất, không phải bên trong một hàm. Kiểu ưu tiên là đặt lệnh gọi này ngay bên dưới các câu lệnh load()
và mọi logic ngắn gọn cần thiết để xác định đối số.
Nếu bạn đặt cờ --check_bzl_visibility
thành false, thì các lỗi vi phạm chế độ hiển thị tải sẽ phát ra cảnh báo nhưng không làm lỗi trong quá trình tạo.
Các tham số
Thông số | Nội dung mô tả |
---|---|
value
|
bắt buộc Danh sách các chuỗi thông số kỹ thuật của gói hoặc một chuỗi thông số kỹ thuật của gói. Thông số kỹ thuật của gói sẽ tuân theo định dạng của
Không được phép sử dụng cú pháp "@"; tất cả thông số kỹ thuật được diễn giải tương ứng với kho lưu trữ của mô-đun hiện tại. Nếu Lưu ý rằng cờ |
không gian làm việc
None workspace(name)
Hàm này chỉ dùng được trong tệp WORKSPACE
và phải được khai báo trước tất cả hàm khác trong tệp WORKSPACE
. Mỗi tệp WORKSPACE
phải có một hàm workspace
.
Đặt tên cho không gian làm việc này. Tên không gian làm việc phải là nội dung mô tả kiểu gói Java của dự án, sử dụng dấu gạch dưới làm dấu phân tách. Ví dụ: github.com/bazelbuild/bazel phải sử dụng com_github_bazelbuild_bazel.
Tên này được dùng cho thư mục lưu trữ các tệp runfile của kho lưu trữ. Ví dụ: nếu có một tệp runfile foo/bar
trong kho lưu trữ cục bộ và tệp WORKSPACE chứa workspace(name = 'baz')
, thì tệp runfile đó sẽ nằm trong mytarget.runfiles/baz/foo/bar
. Nếu bạn không chỉ định tên không gian làm việc, thì tệp runfile sẽ được liên kết tượng trưng với bar.runfiles/foo/bar
.
Tên quy tắc trong Kho lưu trữ từ xa phải là tên không gian làm việc hợp lệ. Ví dụ: bạn có thể có maven_jar(name = 'foo')
, nhưng không phải maven_jar(name = 'foo%bar')
, vì Bazel sẽ cố gắng viết một tệp WORKSPACE cho maven_jar
chứa workspace(name = 'foo%bar')
.
Các tham số
Thông số | Nội dung mô tả |
---|---|
name
|
bắt buộc tên của không gian làm việc. Tên phải bắt đầu bằng một chữ cái và chỉ có thể chứa chữ cái, số, dấu gạch dưới, dấu gạch ngang và dấu chấm. |
zip
list zip(*args)Trả về
list
của tuple
, trong đó bộ dữ liệu thứ i chứa phần tử thứ i từ mỗi trình tự đối số hoặc đối tượng có thể lặp lại. Danh sách có kích thước của dữ liệu đầu vào ngắn nhất. Với một đối số có thể lặp lại, hàm này sẽ trả về danh sách gồm 1 bộ dữ liệu. Nếu không có đối số, hàm này sẽ trả về một danh sách trống. Ví dụ:zip() # == [] zip([1, 2]) # == [(1,), (2,)] zip([1, 2], [3, 4]) # == [(1, 3), (2, 4)] zip([1, 2], [3, 4, 5]) # == [(1, 3), (2, 4)]
Các tham số
Thông số | Nội dung mô tả |
---|---|
args
|
bắt buộc để nén. |