Đối với mọi thực thể Label
l
, biểu thức chuỗi str(l)
có thuộc tính Label(str(l)) == l
, bất kể lệnh gọi Label()
xảy ra ở đâu.
Hội viên
Hãng nhạc
Label Label(input)
Label
, trong bối cảnh của gói nơi tệp nguồn .bzl
gọi tồn tại. Nếu giá trị đã cho là Label
, thì giá trị đó sẽ được trả về mà không thay đổi.Đối với macro, một hàm liên quan là native.package_relative_label()
sẽ chuyển đổi dữ liệu đầu vào thành Label
trong bối cảnh của gói hiện đang được tạo. Sử dụng hàm đó để mô phỏng quá trình chuyển đổi chuỗi thành nhãn được thực hiện tự động bằng các thuộc tính quy tắc có giá trị là nhãn.
Thông số
Thông số | Mô tả |
---|---|
input
|
string; hoặc Label;
required Chuỗi nhãn đầu vào hoặc đối tượng Nhãn. Nếu một đối tượng Nhãn được truyền, thì đối tượng đó sẽ được trả về nguyên trạng. |
tên
string Label.name
Label("//pkg/foo:abc").name == "abc"
gói hàng
string Label.package
Label("//pkg/foo:abc").package == "pkg/foo"
có liên quan
Label Label.relative(relName)
//
) hoặc tương đối với gói hiện tại. Nếu nhãn này nằm trong một kho lưu trữ từ xa, thì đối số sẽ được phân giải tương ứng với kho lưu trữ đó. Nếu đối số chứa tên kho lưu trữ, thì nhãn hiện tại sẽ bị bỏ qua và đối số được trả về nguyên trạng, ngoại trừ việc tên kho lưu trữ được viết lại nếu tên đó nằm trong mối liên kết kho lưu trữ hiện tại. Các nhãn dành riêng cũng sẽ được trả về nguyên trạng.Ví dụ:
Label("//foo/bar:baz").relative(":quux") == Label("//foo/bar:quux") Label("//foo/bar:baz").relative("//wiz:quux") == Label("//wiz:quux") Label("@repo//foo/bar:baz").relative("//wiz:quux") == Label("@repo//wiz:quux") Label("@repo//foo/bar:baz").relative("//visibility:public") == Label("//visibility:public") Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@other//wiz:quux")
Nếu ánh xạ kho lưu trữ được truyền vào là {'@other' : '@remapped'}
, thì quá trình ánh xạ lại sau đây sẽ diễn ra:
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")
Thông số
Thông số | Mô tả |
---|---|
relName
|
required Nhãn sẽ được phân giải tương ứng với nhãn này. |
workspace_name
string Label.workspace_name
Label("@foo//bar:baz").workspace_name == "foo"
workspace_root
string Label.workspace_root
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"