Hội viên
- tất cả
- analysis_test_transition
- bất kỳ
- archive_override
- tỷ lệ
- bazel_dep
- liên kết
- bool
- configuration_field
- depset
- dict
- dir
- enumerate
- exec_group
- không đạt
- float
- getattr
- git_override
- hasattr
- hàm băm
- int
- len
- list
- local_path_override
- max
- phút
- mô-đun
- module_extension
- multiple_version_override
- provider
- dải ô
- register_execution_platforms()
- register_execution_platforms(dev_dependency)
- register_toolchains()
- register_toolchains(dev_dependency)
- repository_rule
- repr
- đã huỷ
- quy tắc
- chọn
- single_version_override
- đã sắp xếp
- str
- tag_class
- tuple
- type
- use_extension
- use_repo
- visibility
- workspace
- zip
tất cả
bool all(elements)Trả về true nếu tất cả phần tử đều đánh giá là True hoặc nếu tập hợp này 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
Tham số
Thông số | Mô tả |
---|---|
elements
|
bắt buộc Một chuỗi hoặc tập hợp các phần tử. |
analysis_test_transition
transition analysis_test_transition(settings)
Tạo một quá trình 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. Bạn chỉ có thể áp dụng quá trình chuyển đổi này trên các thuộc tính của quy tắc có analysis_test = True
. Các quy tắc như vậy bị hạn chế về chức 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, các hiệu ứng chuyển đổi được tạo bằng hàm này bị giới hạn về phạm vi tiềm năng so với các hiệu ứng chuyển đổi được tạo bằng transition.
Hàm này chủ yếu được thiết kế để hỗ trợ thư viện cốt lõi Khung kiểm thử phân tích. Hãy xem tài liệu (hoặc cách triển khai) của lớp này để biết các phương pháp hay nhất.
Tham số
Thông số | Mô tả |
---|---|
settings
|
bắt buộc Một từ điển chứa thông tin về các chế độ cài đặt cấu hình cần được đặt theo quá trình chuyển đổi cấu hình này. Khoá là nhãn chế độ cài đặt bản dựng và giá trị là 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 thuộc tính này để khai báo các chế độ cài đặt cấu hình cụ thể mà kiểm thử phân tích yêu cầu phải được thiết lập để vượt qua. |
bất kỳ
bool any(elements)Trả về true nếu ít nhất một phần tử đá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
Tham số
Thông số | Mô tả |
---|---|
elements
|
bắt buộc Một chuỗi hoặc 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ừ một sổ đăng ký. Chỉ thị này chỉ có hiệu lực trong mô-đun gốc; nói cách khác, nếu một mô-đun được dùng làm phần phụ thuộc của các mô-đun khác, thì các chế độ ghi đè của chính mô-đun đó sẽ bị bỏ qua.
Tham số
Thông số | 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 tệp lưu trữ; có thể là URL http(s):// hoặc file://. |
integrity
|
mặc định = " Checksum 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
|
mặc định = " Tiền tố thư mục cần xoá khỏi các tệp đã trích xuất. |
patches
|
Iterable of strings ;
default = []Danh sách nhãn trỏ đến các 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 giá trị này được áp dụng theo thứ tự trong 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
|
mặc định = 0 Tương tự 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 một phương diện mới. Kết quả của hàm này phải được lưu trữ trong một giá trị toàn cục. Vui lòng xem phần giới thiệu về các khía cạnh để biết thêm thông tin chi tiết.
Tham số
Thông số | Mô tả |
---|---|
implementation
|
bắt buộc Hàm Starlark triển khai khía cạnh này, với đúng hai tham số: Target (mục tiêu áp dụng khía cạnh) và ctx (ngữ cảnh quy tắc tạo mục tiêu). Bạn có thể xem các thuộc tính của mục tiêu thông qua trường ctx.rule . Hàm này được đánh giá trong giai đoạn phân tích cho mỗi lần áp dụng một khía cạnh cho một mục tiêu.
|
attr_aspects
|
sequence of strings ;
default = []Danh sách tên thuộc tính. Phương diện này sẽ lan truyền theo các phần phụ thuộc được chỉ định trong các thuộc tính của một mục tiêu có tên như vậ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 tải cùng với tất cả các phần phụ thuộc của một mục tiêu.
|
attrs
|
dict; or None ;
default = NoneMột từ điển khai báo tất cả các thuộc tính của khía cạnh. Thuộc tính này liên kết từ tên thuộc tính đến đối tượng thuộc tính, chẳng hạn như "attr.label" hoặc "attr.string" (xem mô-đun attr). Các 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 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 khía cạnh giới hạn việc truyền tải chỉ đến những mục tiêu có quy tắc quảng cáo các nhà cung cấp bắt buộc. Giá trị này phải là một danh sách chứa các nhà cung cấp riêng lẻ hoặc danh sách các nhà cung cấp, nhưng không được chứa cả hai. Ví dụ: [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] là giá trị hợp lệ còn [FooInfo, BarInfo, [BazInfo, QuxInfo]] thì không.Danh sách nhà cung cấp không lồng nhau sẽ tự động được chuyển đổi thành danh sách chứa một danh sách nhà cung cấp. Tức là Để một số quy tắc (ví dụ: |
required_aspect_providers
|
mặc định = [] Thuộc tính này cho phép khía cạnh này kiểm tra các khía cạnh khác. Giá trị này phải là một danh sách chứa các nhà cung cấp riêng lẻ hoặc danh sách các nhà cung cấp, nhưng không được chứa cả hai. Ví dụ: [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] là giá trị hợp lệ còn [FooInfo, BarInfo, [BazInfo, QuxInfo]] thì không.Danh sách nhà cung cấp không lồng nhau sẽ tự động được chuyển đổi thành danh sách chứa một danh sách nhà cung cấp. Tức là Để hiển thị một phương diện khác (ví dụ: |
provides
|
mặc định = [] Danh sách các nhà cung cấp mà hàm triển khai phải trả về. Sẽ xảy ra lỗi nếu hàm triển khai bỏ qua bất kỳ loại 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 bổ sung không có trong danh sách tại đây. Mỗi phần tử của danh sách là một đối tượng |
requires
|
sequence of Aspects ;
default = []Danh sách các khía cạnh cần được truyền trước khía cạnh 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à khía cạnh 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à khía cạnh yêu cầu trong cấu hình máy chủ. |
toolchains
|
sequence ;
default = []Nếu được đặt, tập hợp các chuỗi công cụ mà quy tắc này yêu cầu. Danh sách này có thể chứa các đối tượng String, Label hoặc StarlarkToolchainTypeApi, theo bất kỳ cách kết hợp nào. Bạn có thể tìm thấy chuỗi công cụ bằng cách kiểm tra nền tảng hiện tại và cung cấp cho quá trình triển khai quy tắc thông qua ctx.toolchain .
|
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 được xoá. |
doc
|
default = "' Nội dung mô tả về khía cạnh có thể được trích xuất bằng các công cụ tạo tài liệu. |
apply_to_generating_rules
|
mặc định = False Nếu đúng, khi áp dụng cho tệp đầu ra, tỷ lệ 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 khía cạnh truyền tải gián tiếp thông qua thuộc tính "deps" và được áp dụng cho mục tiêu "alpha". Giả sử "alpha" có "deps = [':beta_output']`, trong đó "beta_output" là đầu ra đã khai báo của mục tiêu "beta". Giả sử "beta" có mục tiêu "charlie" là một trong các "deps" của nó. Nếu "apply_to_generating_rules=True" cho khía cạnh, thì khía cạnh sẽ truyền tải thông qua "alpha", "beta" và "charlie". Nếu là False, thì khía cạnh sẽ chỉ truyền tải đến "alpha". Giá trị mặc định là false. |
exec_compatible_with
|
sequence of strings ;
default = []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 tất cả các thực thể của khía cạnh này. |
exec_groups
|
dict; or None ;
mặc định = KhôngTừ điển tên nhóm thực thi (chuỗi) thành exec_group . Nếu được đặt, cho phép các khía cạnh chạy các 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='', max_compatibility_level=-1, 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.
Tham số
Thông số | Mô tả |
---|---|
name
|
bắt buộc Tên của mô-đun cần thêm làm phần phụ thuộc trực tiếp. |
version
|
mặc định = "" Phiên bản của mô-đun sẽ được thêm làm phần phụ thuộc trực tiếp. |
max_compatibility_level
|
mặc định = -1compatibility_level tối đa được hỗ trợ để thêm mô-đun dưới dạng phần phụ thuộc trực tiếp. Phiên bản của mô-đun ngụ ý cấp độ tương thích_tối thiểu được hỗ trợ, cũng như cấp độ tối đa nếu bạn không chỉ định thuộc tính này.
|
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 = False Nếu đúng, 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` đang bật. |
liên kết
None bind(name, actual=None)
Cảnh báo: Bạn không nên sử dụng bind()
. Hãy xem phần Cân nhắc xoá liên kết để thảo luận về các vấn đề và giải pháp thay thế.
Gán bí danh cho một mục tiêu trong gói //external
.
Tham số
Thông số | Mô tả |
---|---|
name
|
bắt buộc Nhãn trong phần "//external" để làm tên đại diện |
actual
|
string; or None ;
default = NoneNhãn thực tế sẽ được gán 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, phương thức này sẽ trả về True
.
Tham số
Thông số | Mô tả |
---|---|
x
|
default = False Biến cần chuyển đổi. |
configuration_field
LateBoundDefault configuration_field(fragment, name)Tham chiếu đến giá trị mặc định liên kết muộn cho một thuộc tính thuộc loại label (nhãn). Một giá trị được gọi là "giới hạn trễ" nếu giá trị đó yêu cầu cấu hình được tạo trước khi xác định giá trị. Mọi thuộc tính sử dụng giá trị này 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 trong quá trình triển khai quy tắc:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
Tham số
Thông số | Mô tả |
---|---|
fragment
|
bắt buộc Tên của một mảnh cấu hình chứa giá trị liên kết muộn. |
name
|
bắt buộc Tên của giá trị cần lấy từ mảnh cấu hình. |
depset
depset depset(direct=None, order="default", *, transitive=None)Tạo depset. Tham số
direct
là danh sách các phần tử trực tiếp của nhóm phần phụ thuộc và tham số transitive
là danh sách các nhóm phần phụ thuộc mà các phần tử của nhóm này trở thành phần tử gián tiếp của nhóm phần phụ thuộc đã tạo. Thứ tự trả về các phần tử khi depset được chuyển đổi thành danh sách được chỉ định bằng tham số order
. Hãy xem phần Tổng quan về nhóm phần phụ thuộc để biết thêm thông tin.
Tất cả phần tử (trực tiếp và gián tiếp) của một depset phải thuộc cùng một loại, như được biểu thức type(x)
trả về.
Vì tập hợp dựa trên hàm băm được dùng để loại bỏ các phần tử trùng lặp trong quá trình lặp lại, nên tất cả các phần tử của một tập hợp phần phụ thuộc phải có thể băm. Tuy nhiên, hằng số này hiện không được kiểm tra nhất quán trong tất cả các hàm khởi tạo. Sử dụng cờ --incompatible_always_check_depset_elements để 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; xem Vấn đề 10313.
Ngoài ra, các phần tử hiện phải không thể thay đổi, mặc dù quy định hạn chế này sẽ được nới lỏng trong tương lai.
Thứ tự của nhóm phần phụ thuộc được tạo phải tương thích với thứ tự của các nhóm phần phụ thuộc transitive
. Thứ tự "default"
tương thích với mọi thứ tự khác, tất cả các thứ tự khác chỉ tương thích với chính chúng.
Lưu ý về khả năng tương thích ngược/tương thích. Hàm này hiện chấp nhận tham số items
theo vị trí. Phương thức này không còn được dùng nữa và sẽ bị xoá trong tương lai. Sau khi 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 đều tương đương và phù hợp với tương lai:
depset(['a', 'b'], transitive = [...]) depset(direct = ['a', 'b'], transitive = [...])
Tham số
Thông số | Mô tả |
---|---|
direct
|
sequence; or None ;
default = NoneDanh sách các phần tử trực tiếp của một depset. |
order
|
default = "default" Chiến lược duyệt qua cho depset 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 nhóm phần phụ thuộc có phần tử sẽ trở thành phần tử gián tiếp của nhóm 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 là đến sau các mục nhập được cung cấp thông qua đối số vị trí.
Tham số
Thông số | Mô tả |
---|---|
pairs
|
mặc định = [] Một tập hợp hoặc một đối tượng có thể lặp lại, trong đó mỗi phần tử có độ dài 2 (khoá, giá trị). |
kwargs
|
bắt buộc Từ điển của các mục bổ sung. |
dir
list dir(x)Trả về một danh sách các chuỗi: tên của các thuộc tính và phương thức của đối tượng tham số.
Tham số
Thông số | 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ộ dữ liệu gồm hai phần tử), với chỉ mục (int) và mục từ trình tự đầu vào.
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]
Tham số
Thông số | 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 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.
Tham số
Thông số | Mô tả |
---|---|
toolchains
|
sequence ;
default = []Tập hợp các chuỗi công cụ mà nhóm thực thi này yêu cầu. Danh sách này có thể chứa các đối tượng String, Label hoặc StarlarkToolchainTypeApi, theo bất kỳ cách kết hợp nào. |
exec_compatible_with
|
sequence of strings ;
default = []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
|
mặc định = False Nếu được đặt thành true, nhóm thực thi này sẽ kế thừa các chuỗi công cụ và quy tắc ràng buộc của quy tắc mà nhóm này được đính kèm. Nếu bạn đặt thành bất kỳ chuỗi nào khác, lỗi sẽ xảy ra. |
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 lỗi.
Tham số
Thông số | Mô tả |
---|---|
msg
|
mặc định = Không Không dùng nữa: hãy sử dụng đối số vị trí. Đối số này hoạt động như một đối số vị trí đầu tiên ngầm ẩn. |
attr
|
string; or None ;
mặc định = KhôngKhông dùng nữa. Thêm một 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 bằng debugPrint (tương đương với str theo mặc định) và được nối với dấu cách, xuất hiện trong thông báo lỗi. |
số thực dấu phẩy động
float float(x=unbound)Trả về x dưới dạng giá trị float.
- Nếu
x
đã là một float,float
sẽ trả về giá trị đó mà không thay đổi. - Nếu
x
là một bool,float
sẽ trả về 1.0 cho True và 0.0 cho False. - Nếu
x
là một int,float
sẽ trả về giá trị dấu phẩy động hữu hạn gần nhất với x hoặc một lỗi nếu độ lớn quá lớn. - Nếu
x
là một chuỗi, thì chuỗi đó phải là một giá trị cố định kiểu dấu phẩy động hợp lệ hoặc bằng (bỏ qua chữ hoa chữ thường) vớiNaN
,Inf
hoặcInfinity
, có thể có dấu+
hoặc-
đứng trước.
float()
sẽ trả về 0.0.
Tham số
Thông số | Mô tả |
---|---|
x
|
mặc định = unbound 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ó tên đã cho nếu có. Nếu không, hàm này sẽ trả về
default
(nếu được chỉ định) hoặc báo lỗi. getattr(x, "foobar")
tương đương với x.foobar
.getattr(ctx.attr, "myattr") getattr(ctx.attr, "myattr", "mydefault")
Tham số
Thông số | 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 ràng buộc Giá trị mặc định được trả về trong trường hợp cấu trúc không có thuộc tính có 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 thay đổi cụ thể của kho lưu trữ Git. Chỉ thị này chỉ có hiệu lực trong mô-đun gốc; nói cách khác, nếu một mô-đun được dùng làm phần phụ thuộc của các mô-đun khác, thì các chế độ ghi đè của chính mô-đun đó sẽ bị bỏ qua.
Tham số
Thông số | 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
|
mặc định = "' Thay đổi cần được kiểm tra. |
patches
|
Iterable of strings ;
default = []Danh sách nhãn trỏ đến các 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 giá trị này được áp dụng theo thứ tự trong 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
|
mặc định = 0 Tương tự 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ó 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")
Tham số
Thông số | Mô tả |
---|---|
x
|
bắt buộc Đối tượng cần kiểm tra. |
name
|
required Tên của thuộc tính. |
hàm băm
int hash(value)Trả về giá trị băm cho một chuỗi. Giá trị này được tính toán một cách xác định bằng cách sử dụng cùng một thuật toán như
String.hashCode()
của Java, cụ thể là: s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]Hiện không hỗ trợ việc băm các giá trị ngoài chuỗi.
Tham số
Thông số | Mô tả |
---|---|
value
|
bắt buộc Giá trị chuỗi để băm. |
int
int int(x, base=unbound)Trả về x dưới dạng giá trị int.
- Nếu
x
đã là một int,int
sẽ trả về giá trị đó mà không thay đổi. - Nếu
x
là một bool,int
sẽ trả về 1 cho True và 0 cho False. - Nếu
x
là một chuỗi, thì chuỗi đó phải có định dạng<sign><prefix><digits>
.<sign>
là"+"
,"-"
hoặc trống (được diễn giải là dương).<digits>
là một chuỗi chữ số từ 0 đếnbase
– 1, trong đó các chữ cái a-z (hoặc tương đương là A-Z) được dùng làm chữ số cho 10-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 là 0B/0O/0X) tương ứng; 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 diễn giải là một số nguyên cố định, theo nghĩa là một trong các cơ sở 2/8/10/16 được chọn tuỳ thuộc vào tiền tố nào được sử dụng (nếu có). Nếubase
là 0, không có tiền tố nào được sử dụng và có nhiều chữ số, thì chữ số đầu tiên không được là 0; điều này là để tránh nhầm lẫn giữa số bát phân và số thập phân. Độ lớn của số được biểu thị bằng chuỗi phải nằm trong phạm vi cho phép của kiểu int. - Nếu
x
là một số thực,int
sẽ trả về giá trị số nguyên của số thực đó, làm tròn về 0. Đây là lỗi nếu x không phải là số hữu hạn (NaN hoặc vô cực).
x
là 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 đối số rỗng và 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
Tham số
Thông số | Mô tả |
---|---|
x
|
bắt buộc Chuỗi cần chuyển đổi. |
base
|
mặc định = unbound 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 cả 2 và 36) hoặc 0 để phát hiện cơ số như thể x là một số nguyên cố định. Bạn không được cung cấp thông 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, trình tự (chẳng hạn như danh sách hoặc bộ dữ liệu), từ điển hoặc đối tượng có thể lặp lại khác.
Tham số
Thông số | 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ác phần tử giống với giá trị có thể 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]
Tham số
Thông số | Mô tả |
---|---|
x
|
default = [] Đố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 ổ cục bộ. Chỉ thị này chỉ có hiệu lực trong mô-đun gốc; nói cách khác, nếu một mô-đun được dùng làm phần phụ thuộc của các mô-đun khác, thì các chế độ ghi đè của chính mô-đun đó sẽ bị bỏ qua.
Tham số
Thông số | 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ề đối số lớn nhất trong số tất cả đối số đã cho. Nếu chỉ cung cấp một đối số, thì đối số đó phải là một đối tượng có thể lặp lại không trống.Đây là lỗi nếu các phần tử không thể 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.
max(2, 5, 4) == 5 max([5, 6, 3]) == 6
Tham số
Thông số | Mô tả |
---|---|
args
|
bắt buộc Các phần tử cần kiểm tra. |
phút
unknown min(*args)Trả về đối số nhỏ nhất trong số tất cả đối số đã cho. Nếu chỉ cung cấp một đối số, thì đối số đó phải là một đối tượng có thể lặp lại không trống. Lỗi sẽ xảy ra nếu các phần tử không thể 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
Tham số
Thông số | Mô tả |
---|---|
args
|
bắt buộc Các phần 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 nhấ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 hành vi của mô-đun hiện tại và các phần phụ thuộc của mô-đun đó.
Bạn chỉ nên gọi phương thức này một lần. Bạn chỉ có thể bỏ qua phần này nếu mô-đun này là mô-đun gốc (tức là nếu mô-đun này không phụ thuộc vào mô-đun khác).
Tham số
Thông số | 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 (chẳng hạn như nếu mô-đun này không phụ thuộc vào 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 chữ cái viết thường; 3) kết thúc bằng 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 (chẳng hạn như nếu mô-đun này không phụ thuộc vào mô-đun khác). |
compatibility_level
|
mặc định = 0 Cấp độ tương thích của mô-đun; bạn nên thay đổi giá trị này mỗi khi có 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 theo SemVer, ngoại trừ việc phiên bản 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ó các cấp độ tương thích khác nhau sẽ tham gia vào việc phân giải phiên bản như thể chúng 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 được chứa nhiều mô-đun có cùng tên nhưng có các cấp độ tương thích khác nhau (trừ khi multiple_version_override có hiệu lực; hãy xem đó để biết thêm chi tiết).
|
repo_name
|
mặc định = "" Tên của kho lưu trữ đại diện cho mô-đun này, như chính mô-đun nhìn thấy. 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 các dự án đã sử dụng tên kho lưu trữ khác với tên mô-đun. |
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 phiên bản Bazel nào tương thích với mô-đun này. Điều 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 quy tắc 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 không tương thích đã biết 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 dùng khi bạn phụ thuộc vào một số tính năng chỉ có từ phiên bản X.X.X. -X.X.X: Phiên bản Bazel X.X.X không tương thích. Được dùng khi có lỗi trong X.X.X khiến bạn gặp sự cố, nhưng đã được khắc phục trong các phiên bản sau. |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc='', environ=[], os_dependent=False, arch_dependent=False)Tạo một phần mở rộng mô-đun mới. Lưu trữ giá trị này trong một giá trị toàn cục để có thể xuất và sử dụng trong tệp MODULE.bazel.
Tham số
Thông số | Mô tả |
---|---|
implementation
|
bắt buộc Hàm triển khai tiện ích mô-đun này. Phải nhận một tham số duy nhất, module_ctx . Hàm này được gọi một lần ở đầu bản dựng để xác định tập hợp các kho lưu trữ có sẵn.
|
tag_classes
|
default = {} Một 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 liên kết 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 mà các công cụ tạo tài liệu có thể trích xuất. |
environ
|
sequence of strings ;
default = []Cung cấp danh sách biến môi trường mà tiện ích mô-đun này phụ thuộc. Nếu một biến môi trường trong danh sách đó thay đổi, tiện ích sẽ được đánh giá lại. |
os_dependent
|
mặc định = False Cho biết liệu tiện ích này có phụ thuộc vào hệ điều hành hay không |
arch_dependent
|
default = False Cho biết liệu tiện ích này có phụ thuộc vào cấu trúc hay không |
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ừ một sổ đăng ký, nhưng nhiều phiên bản của phần phụ thuộc đó phải được phép tồn tại cùng nhau. Hãy xem tài liệu để biết thêm chi tiết. Chỉ thị này chỉ có hiệu lực trong mô-đun gốc; nói cách khác, nếu một mô-đun được dùng làm phần phụ thuộc của các mô-đun khác, thì các chế độ ghi đè của chính mô-đun đó sẽ bị bỏ qua.
Tham số
Thông số | 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 tồn tại cùng nhau. Các phiên bản này phải có trong lựa chọn trước của 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 cao hơn gần nhất được phép ở cùng cấp độ tương thích, trong khi các phần phụ thuộc có phiên bản cao hơn mọi phiên bản được phép ở cùng cấp độ tương thích sẽ gây ra lỗi. |
registry
|
mặc định = "" Ghi đè sổ đăng ký cho mô-đun này; thay vì tìm mô-đun này trong danh sách sổ đă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 không đượ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ới (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 công khai do mã này tạo ra nội dung rác cho người dùng. Đối với các tính năng không dùng nữa, hãy ưu tiên lỗi nghiêm trọng bằng cách sử dụng fail()
bất cứ khi nào có thể.
Tham số
Thông số | Mô tả |
---|---|
sep
|
mặc định = " " Chuỗi 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. |
provider
unknown provider(doc='', *, fields=None, init=None)Xác định biểu tượng nhà cung cấp. Bạn có thể tạo thực thể của trình cung cấp bằng cách gọi trình cung cấp đó hoặc sử dụng trực tiếp làm khoá để truy xuất thực thể của trình cung cấp đó từ 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 ...
Hãy xem phần Quy tắc (Nhà cung cấp) để biết hướng dẫn toàn diện về cách sử dụng nhà cung cấp.
Trả về một giá trị có thể gọi Provider
nếu không chỉ định init
.
Nếu init
được chỉ định, hãy trả về một bộ dữ liệu gồm 2 phần tử: một giá trị có thể gọi Provider
và một giá trị có thể gọi hàm khởi tạo thô. Hãy xem phần Quy tắc (Khởi chạy tuỳ chỉnh của nhà cung cấp tuỳ chỉnh) và nội dung thảo luận về tham số init
ở bên dưới để biết thông tin chi tiết.
Tham số
Thông số | Mô tả |
---|---|
doc
|
mặc định = "' Nội dung mô tả về nhà cung cấp có thể được trích xuất bằng các công cụ tạo tài liệu. |
fields
|
sequence of strings; or dict; or None ;
mặc định = KhôngNế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ể có 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 bản sao. 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 trình cung cấp thông thường và hàm khởi tạo thô.Sau đây là nội dung mô tả chính xác; hãy xem phần Quy tắc (Khởi chạy tuỳ chỉnh của trình cung cấp) để thảo luận và tìm hiểu các trường hợp sử dụng trực quan. Hãy đặt
init không được cung cấp, lệnh gọi đến biểu tượng P sẽ đóng vai trò là lệnh gọi đến 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ẽ tạo một cách đơn giản để m là một thực thể MyInfo với m.foo == 1 .Tuy nhiên, trong trường hợp
Lưu ý: các bước trên ngụ ý rằng 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 trong đó các mục chuyển từ
start
sang stop
, sử dụng giá trị tăng step
. Nếu bạn chỉ cung cấp một đối số, 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]
Tham số
Thông số | Mô tả |
---|---|
start_or_stop
|
bắt buộc Giá trị của phần tử bắt đầu nếu bạn cung cấp giá trị dừng, nếu không giá trị của giá trị dừng và giá trị 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ả; quá trình tạo danh sách sẽ dừng trước khi đạt đến stop .
|
step
|
mặc định = 1 Độ tăng (mặc định là 1). Có thể là giá trị âm. |
register_execution_platforms()
None register_execution_platforms(*platform_labels)Đăng ký một nền tảng đã 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 giải quyết chuỗi công cụ.
Tham số
Thông số | 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(dev_dependency)
None register_execution_platforms(dev_dependency=False, *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à mẫu mục tiêu tuyệt đối (tức là bắt đầu bằng
@
hoặc //
). Xem phần độ phân giải chuỗi công cụ để biết thêm thông tin.
Tham số
Thông số | Mô tả |
---|---|
dev_dependency
|
mặc định = False Nếu đúng, các nền tảng thực thi sẽ không được đăng ký nếu mô-đun hiện tại không phải là mô-đun gốc hoặc `--ignore_dev_dependency` đang bậ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 để Bazel có thể sử dụng chuỗi công cụ đó trong quá trình giải quyết chuỗi công cụ. Xem ví dụ về cách xác định và đăng ký chuỗi công cụ.
Tham số
Thông số | Mô tả |
---|---|
toolchain_labels
|
sequence of strings ;
bắt buộcNhãn của chuỗi công cụ cần đăng ký. |
register_toolchains(dev_dependency)
None register_toolchains(dev_dependency=False, *toolchain_labels)Chỉ định các chuỗi công cụ đã xác định để đăng ký khi chọn mô-đun này. Phải là mẫu mục tiêu tuyệt đối (tức là bắt đầu bằng
@
hoặc //
). Xem phần độ phân giải chuỗi công cụ để biết thêm thông tin.
Tham số
Thông số | Mô tả |
---|---|
dev_dependency
|
mặc định = False Nếu đúng, các chuỗi công cụ sẽ không được đăng ký nếu mô-đun hiện tại không phải là mô-đun gốc hoặc `--ignore_dev_dependency` đang bật. |
toolchain_labels
|
sequence of strings ;
bắt buộcNhãn của chuỗi công cụ cần đăng ký. |
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')Tạo quy tắc mới cho kho lưu trữ. Lưu trữ trong một giá trị toàn cục để có thể tải và gọi từ tệp WORKSPACE.
Tham số
Thông số | Mô tả |
---|---|
implementation
|
required hàm triển khai quy tắc này. Phải có một tham số duy nhất, repository_ctx . Hàm này được gọi trong giai đoạn tải cho mỗi thực thể của quy tắc.
|
attrs
|
từ điển dict; or None ;
mặc định = Noneđể khai báo tất cả các thuộc tính của quy tắc. Phương thức này liên kết từ tên thuộc tính đến đối tượng thuộc tính (xem mô-đun attr). Các thuộc tính bắt đầu bằng _ là thuộc tính riêng tư và có thể được dùng để thêm một phần phụ thuộc ngầm ẩn trên một nhãn vào một tệp (quy tắc kho lưu trữ không thể phụ thuộc vào một cấu phần phần mềm được tạo). Thuộc tính name được thêm ngầm ẩn và không được chỉ định.
|
local
|
mặc định = False Cho biết 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 ;
default = []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 vào. Nếu một biến môi trường trong danh sách đó thay đổi, kho lưu trữ sẽ được tìm nạp lại. |
configure
|
mặc định = False Cho biết rằng kho lưu trữ kiểm tra hệ thống cho mục đích cấu hình |
remotable
|
default = False Thử nghiệm. Tham số này đang trong giai đoạn 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 tính năng này. Bạn có thể bật tính năng này trên cơ sở thử nghiệm bằng cách đặt ---experimental_repo_remote_exec Tương thích với việc thực thi từ xa |
doc
|
mặc định = "" Nội dung mô tả quy tắc kho lưu trữ có thể được trích xuất bằng các công cụ tạo tài liệu. |
repr
string repr(x)Chuyển đổi bất kỳ đối tượng nào thành một chuỗi đại diện. Điều này rất hữu ích khi gỡ lỗi.
repr("ab") == '"ab"'
Tham số
Thông số | 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, chưa bị đóng băng, chứa các phần tử của trình tự có thể lặp lại ban đầu theo thứ tự đảo ngược.
reversed([3, 5, 4]) == [4, 5, 3]
Tham số
Thông số | Mô tả |
---|---|
sequence
|
bắt buộc Trình tự có thể lặp lại (ví dụ: danh sách) cần đả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 một 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 gán 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.
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, chứ không áp dụng cho mục tiêu của các quy tắc đó.)
Tham số
Thông số | Mô tả |
---|---|
implementation
|
required hàm Starlark triển khai quy tắc này, phải có đúng một tham số: ctx. Hàm này được gọi trong giai đoạn phân tích cho mỗi thực thể của quy tắc. Phương thức này 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 hành động để tạo tất cả các đầu ra đã khai báo. |
test
|
mặc định = False Liệu quy tắc này có phải là quy tắc kiểm thử hay không, tức là liệu quy tắc này có thể là đối tượng của lệnh blaze test hay không. Tất cả quy tắc kiểm thử đều tự động được coi là có thể thực thi; bạn không cần thiết (và không nên) đặt rõ ràng executable = True cho quy tắc kiểm thử. Hãy xem trang Quy tắc để biết thêm thông tin.
|
attrs
|
từ điển dict; or None ;
mặc định = Noneđể khai báo tất cả các thuộc tính của quy tắc. Phương thức này liên kết từ tên thuộc tính đến đối tượng thuộc tính (xem mô-đun attr). Các thuộc tính bắt đầu bằng _ là thuộc tính riêng tư và có thể được dùng để thêm một phần phụ thuộc ngầm ẩn trên nhãn. Thuộc tính name được thêm ngầm ẩn 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 số thuộc tính. Để giới hạn mức sử dụng bộ nhớ, hàm quy tắc sẽ áp đặt giới hạn về 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. Thông số này không còn được dùng nữa và sẽ sớm bị loại bỏ. Vui lòng không phụ thuộc vào tính năng 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 sắp bị xoá. Thông số này không còn đượ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 đầu ra được khai báo trước. Không giống như các thuộc tính Giá trị của đối số này là một từ điển hoặc một hàm gọi lại tạo ra một từ điển. Lệnh gọi lại hoạt động tương tự như các thuộc tính phần phụ thuộc được tính toán: Tên tham số của hàm được so khớp với các thuộc tính của quy tắc, ví dụ: nếu bạn truyền Mỗi mục trong từ điển tạo ra một đầu ra được khai báo trước, trong đó khoá là một giá trị nhận dạng và giá trị là một mẫu chuỗi xác định nhãn của đầu ra. Trong hàm triển khai của quy tắc, giá trị nhận dạng sẽ 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
|
default = False Liệu quy tắc này có được coi là có thể thực thi hay không, tức là liệu quy tắc này có thể là đối tượng 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
|
mặc định = False Nếu là true, các tệp sẽ được tạo trong thư mục genfiles thay vì thư mục bin. Trừ phi bạn cần cờ này để 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++), đừng đặt cờ này. |
fragments
|
sequence of strings ;
default = []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ủ lưu trữ. |
_skylark_testable
|
mặc định = False (Thử nghiệm) Nếu đúng, quy tắc này sẽ hiển thị các hành động của nó để các quy tắc phụ thuộc vào quy tắc này kiểm tra thông qua trình cung cấp Actions. Trình cung cấp cũng có sẵn 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 thử hành vi tại thời điểm 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 ;
default = []Nếu được đặt, tập hợp các chuỗi công cụ mà quy tắc này yêu cầu. Danh sách này có thể chứa các đối tượng String, Label hoặc StarlarkToolchainTypeApi, theo bất kỳ cách kết hợp nào. Bạn có thể tìm thấy chuỗi công cụ bằng cách kiểm tra nền tảng hiện tại và cung cấp cho quá trình triển khai quy tắc thông qua ctx.toolchain .
|
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 được xoá. |
doc
|
mặc định = "" Nội dung mô tả quy tắc có thể được trích xuất bằng các công cụ tạo tài liệu. |
provides
|
mặc định = [] Danh sách các nhà cung cấp mà hàm triển khai phải trả về. Sẽ xảy ra lỗi nếu hàm triển khai bỏ qua bất kỳ loại 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 bổ sung không có trong danh sách tại đâ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 tất cả các mục tiêu của loại quy tắc này. |
analysis_test
|
mặc định = False 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ử 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 cốt lõi. Hãy xem phần Kiểm thử để biết hướng dẫn. Nếu một quy tắc được xác định là quy tắc kiểm thử phân tích, thì quy tắc đó sẽ được phép sử dụng các chuyển đổi cấu hình được xác định bằng analysis_test_transition trên các thuộc tính của quy tắc đó, nhưng sẽ chọn một số quy định hạn chế:
|
build_setting
|
BuildSetting; or None ;
default = NoneNế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 thuộc tính này, một thuộc tính bắt buộc có tên "build_setting_default" sẽ tự động được thêm 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 Nếu được đặt, hãy trỏ đến quá trình chuyển đổi cấu hình mà quy tắc sẽ áp dụng cho cấu hình của chính nó trước khi phân tích. |
exec_groups
|
dict; or None ;
mặc định = KhôngTừ điển tên nhóm thực thi (chuỗi) thành exec_group . Nếu được đặt, cho phép các quy tắc chạy hành động trên nhiều nền tảng thực thi trong một mục tiêu. 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 ;
default = NoneĐược --compile_one_dependency sử dụng: nếu nhiều quy tắc sử dụng tệp đã chỉ định, 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. Thông số này không còn được dùng nữa và sẽ sớm bị loại bỏ. Vui lòng không phụ thuộc vào tính năng 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 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 Bazel hiểu và báo cáo trong các ngữ cảnh như ghi nhật ký, Nếu bạn bỏ qua tham số này, tên của quy tắc sẽ được đặt thành tên của biến toàn cục Starlark đầu tiên được liên kết với quy tắc này trong mô-đun .bzl khai báo. Do đó, Việc chỉ định tên rõ ràng cho một quy tắc không làm thay đổi vị trí bạn được phép tạo bản sao của quy tắc đó. |
chọn
unknown select(x, no_match_error='')
select()
là hàm trợ giúp giúp thuộc tính quy tắc có thể định cấu hình. Hãy xem phần tạo bách khoa toàn thư để biết thông tin chi tiết.
Tham số
Thông số | Mô tả |
---|---|
x
|
bắt buộc Một dict ánh xạ các điều kiện cấu hình đến các giá trị. Mỗi khoá là một Nhãn hoặc một chuỗi nhãn xác định một thực thể config_setting hoặc constraint_value. Hãy 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 để 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 một phần phụ thuộc vẫn phải đến từ mộ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ý của phần phụ thuộc đó phải được ghi đè hoặc danh sách các bản vá được áp dụng. Chỉ thị này chỉ có hiệu lực trong mô-đun gốc; nói cách khác, nếu một mô-đun được dùng làm phần phụ thuộc của các mô-đun khác, thì các chế độ ghi đè của chính mô-đun đó sẽ bị bỏ qua.
Tham số
Thông số | 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 chỉ muốn ghi đè sổ đăng ký hoặc bản vá. |
registry
|
mặc định = "" Ghi đè sổ đăng ký cho mô-đun này; thay vì tìm mô-đun này trong danh sách sổ đăng ký mặc định, bạn nên sử dụng sổ đăng ký đã cho. |
patches
|
Iterable of strings ;
default = []Danh sách nhãn trỏ đến các 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 giá trị này được áp dụng theo thứ tự trong 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
|
mặc định = 0 Tương tự như đối số --strip của bản vá Unix. |
đã sắp xếp
list sorted(iterable, *, key=None, reverse=False)Trả về một danh sách mới được sắp xếp chứa tất cả các phần tử của trình tự có thể 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ố đảo ngược là True, trong trường hợp này thứ tự sẽ là giảm dần. Sắp xếp ổn định: các phần tử so sánh bằng nhau giữ nguyên thứ tự tương đối ban đầu.
sorted([3, 5, 4]) == [3, 4, 5]
Tham số
Thông số | Mô tả |
---|---|
iterable
|
bắt buộc Trình tự có thể lặp lại để sắp xếp. |
key
|
mặc định = Không có Một hàm không bắt buộc được áp dụng cho mỗi phần tử trước khi so sánh. |
reverse
|
mặc định = False Trả về kết quả theo thứ tự giảm dần. |
str
string str(x)Chuyển đổi bất kỳ đối tượng nào thành chuỗi. Điều này rất hữu ích khi gỡ lỗi.
str("ab") == "ab" str(8) == "8"
Tham số
Thông số | 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 một đối tượng tag_class mới, xác định giản đồ thuộc tính cho một lớp thẻ, là các đối tượng dữ liệu mà tiện ích mô-đun có thể sử dụng.
Tham số
Thông số | 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. Phương thức này liên kết từ tên thuộc tính đến đối tượng thuộc tính (xem mô-đun attr). |
doc
|
mặc định = "" Nội dung mô tả về lớp thẻ có thể được trích xuất bằng các công cụ tạo tài liệu. |
bộ dữ liệu
tuple tuple(x=())Trả về một bộ dữ liệu có các phần tử giống với giá trị có thể 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)
Tham số
Thông số | 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ố. Điều này rất hữu ích khi gỡ lỗi và kiểm tra kiểu. Ví dụ:
type(2) == "int" type([1]) == "list" type(struct(a = 2)) == "struct"Hàm này có thể thay đổi trong tương lai. Để viết mã tương thích với Python và có thể sử dụng trong tương lai, hãy 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
Tham số
Thông số | 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, isolate=False)Trả về một đố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.
Tham số
Thông số | Mô tả |
---|---|
extension_bzl_file
|
bắt buộc Nhãn cho tệp Starlark xác định phần mở rộng mô-đun. |
extension_name
|
bắt buộc Tên của phần mở rộng mô-đun cần sử dụng. Tệp Starlark phải xuất một biểu tượng có tên này. |
dev_dependency
|
mặc định = False Nếu đúng, cách 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 nếu bạn bật `--ignore_dev_dependency`. |
isolate
|
default = False Thử nghiệm. Tham số này đang trong giai đoạn 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 tính năng này. Bạn có thể bật tính năng này trên cơ sở thử nghiệm bằng cách đặt ---experimental_isolated_extension_usages Nếu đúng, thì cách sử dụng tiện ích mô-đun này sẽ được tách biệt với tất cả các cách sử dụng khác, cả trong mô-đun này và các mô-đun khác. Các thẻ được tạo cho mục đích sử dụng này không ảnh hưởng đến các mục đích sử dụng khác và kho lưu trữ do tiện ích tạo cho mục đích sử dụng này sẽ khác với tất cả các kho lưu trữ khác do tiện ích tạo. Thông số này hiện đang trong giai đoạn thử nghiệm và chỉ có với cờ |
use_repo
None use_repo(extension_proxy, *args, **kwargs)Nhập một hoặc nhiều kho lưu trữ do tiện ích mô-đun nhất định tạo ra vào phạm vi của mô-đun hiện tại.
Tham số
Thông số | Mô tả |
---|---|
extension_proxy
|
bắt buộc Đối tượng proxy tiện ích mô-đun do lệnh gọi use_extension trả về.
|
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 nhau. Khoá phải là tên để sử dụng trong phạm vi hiện tại, còn giá trị phải là tên ban đầu do tiện ích mô-đun xuất. |
mức hiển thị
None visibility(value)
Đặt chế độ hiển thị tải của mô-đun .bzl đang được khởi chạy.
Mức độ hiển thị tải của một mô-đun sẽ quyết định liệu các tệp BUILD và .bzl khác có thể tải mô-đun đó hay không. (Điều 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 quản lý 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 đang tải phải nằm trong một gói đã được cấp quyền hiển thị cho mô-đun đó. Bạn luôn có thể tải một mô-đun trong gói của chính mô-đun đó, bất kể chế độ hiển thị của mô-đun.
Bạn chỉ có thể gọi visibility()
một lần cho mỗi tệp .bzl và chỉ ở cấp cao nhất, chứ không phải bên trong một hàm. Bạn nên đặ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 hỏng bản dựng.
Tham số
Thông số | Mô tả |
---|---|
value
|
bắt buộc Danh sách các chuỗi quy cách gói hoặc một chuỗi quy cách gói duy nhất. Quy cách gói tuân theo định dạng tương tự như
Không được sử dụng cú pháp "@"; tất cả thông số kỹ thuật đều đượ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)
Bạn chỉ có thể sử dụng hàm này trong tệp WORKSPACE
và phải khai báo hàm này trước tất cả cá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ả dự án theo kiểu gói Java, sử dụng dấu gạch dưới làm dấu phân cá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 chạy của kho lưu trữ. Ví dụ: nếu có một tệp chạy foo/bar
trong kho lưu trữ cục bộ và tệp WORKSPACE chứa workspace(name = 'baz')
, thì tệp chạy sẽ có 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 chạy sẽ được liên kết tượng trưng đến bar.runfiles/foo/bar
.
Tên quy tắc 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 có maven_jar(name = 'foo%bar')
, vì Bazel sẽ cố gắng ghi tệp WORKSPACE cho maven_jar
chứa workspace(name = 'foo%bar')
.
Tham số
Thông số | 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 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ề một
list
của tuple
, trong đó cặp 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 bằng 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ề một danh sách gồm 1-tuple. 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)]
Tham số
Thông số | Mô tả |
---|---|
args
|
danh sách bắt buộc để nén. |