すべての Label インスタンス l について、文字列表現 str(l) には、Label() 呼び出しの発生場所に関係なく Label(str(l)) == l というプロパティがあります。
print() または fail() に位置引数として渡される場合、Label は代わりに人間が読みやすいように最適化された文字列表現を使用します。この表現では、可能な場合はメイン リポジトリの視点からリポジトリの表示名を使用します。
メンバー
ラベル
Label Label(input)
.bzl ソースファイルが存在するパッケージのコンテキストで、ラベル文字列を Label オブジェクトに変換します。指定された値がすでに Label の場合は、変更されずに返されます。マクロの場合、関連する関数 native.package_relative_label() は、現在構築中のパッケージのコンテキストで入力を Label に変換します。この関数を使用して、ラベル値のルール属性によって自動的に行われる文字列からラベルへの変換を模倣します。
パラメータ
| パラメータ | 説明 |
|---|---|
input
|
string または Label。必須 入力ラベルの文字列または Label オブジェクト。Label オブジェクトが渡された場合は、そのまま返されます。 |
name
string Label.name
Label("@@foo//pkg/foo:abc").name == "abc"パッケージ
string Label.package
Label("@@repo//pkg/foo:abc").package == "pkg/foo"相対
Label Label.relative(relName)
--+incompatible_enable_deprecated_label_apis を設定することで、試験的に有効にできます。非推奨。このメソッドは、リポジトリ名を含む引数で使用すると、予期しない動作をします。代わりに
Label.same_package_label()、native.package_relative_label()、または Label() を使用してください。絶対ラベル(// で始まる)または現在のパッケージに対する相対ラベルを解決します。このラベルがリモート リポジトリにある場合、引数はそのリポジトリを基準に解決されます。引数にリポジトリ名が含まれている場合、現在のラベルは無視され、引数はそのまま返されます。ただし、リポジトリ名が現在のリポジトリ マッピングに含まれている場合は、書き換えられます。予約済みのラベルもそのまま返されます。
例:
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")
渡されたリポジトリ マッピングが {'@other' : '@remapped'} の場合、次の再マッピングが行われます。
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")
パラメータ
| パラメータ | 説明 |
|---|---|
relName
|
string;
必須 このラベルを基準に解決されるラベル。 |
repo_name
string Label.repo_name
@)は含まれません。たとえば、Label("@@foo//bar:baz").repo_name == "foo"same_package_label
Label Label.same_package_label(target_name)
パラメータ
| パラメータ | 説明 |
|---|---|
target_name
|
string;
必須 新しいラベルのターゲット名。 |
workspace_name
string Label.workspace_name
--+incompatible_enable_deprecated_label_apis を設定することで、試験的に有効にできます。非推奨。フィールド名「ワークスペース名」は誤解を招くため、代わりに同じ動作をする
Label.repo_name を使用してください。このラベルで参照されるターゲットを含むリポジトリの正規名。先頭のアットマーク(@)は含まれません。たとえば、
Label("@@foo//bar:baz").workspace_name == "foo"workspace_root
string Label.workspace_root
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"