Para cada instancia Label l, la representación de cadena str(l) tiene la propiedad Label(str(l)) == l, sin importar dónde se produzca la llamada Label().
Cuando se pasa como argumentos posicionales a print() o fail(), Label usa una representación de cadena optimizada para la legibilidad humana. Esta representación usa un nombre de repositorio aparente desde la perspectiva del repositorio principal, si es posible.
Miembros
Etiqueta
Label Label(input)
Label, en el contexto del paquete en el que reside el archivo fuente .bzl que realiza la llamada. Si el valor determinado ya es un Label, se muestra sin cambios.Para las macros, una función relacionada, native.package_relative_label(), convierte la entrada en un Label en el contexto del paquete que se está construyendo. Usa esa función para imitar la conversión de cadena a etiqueta que realizan automáticamente los atributos de regla con valores de etiqueta.
Parámetros
| Parámetro | Descripción |
|---|---|
input
|
cadena o etiqueta;
obligatorio Es la cadena de etiqueta de entrada o el objeto Label. Si se pasa un objeto Label, se muestra tal como está. |
name
string Label.name
Label("@@foo//pkg/foo:abc").name == "abc"paquete
string Label.package
Label("@@repo//pkg/foo:abc").package == "pkg/foo"relative
Label Label.relative(relName)
--+incompatible_enable_deprecated_label_apis Obsoleto. Este método se comporta de manera sorprendente cuando se usa con un argumento que contiene un nombre de repositorio aparente. En su lugar, prefiere
Label.same_package_label(), native.package_relative_label() o Label().Resuelve una etiqueta que es absoluta (comienza con //) o relativa al paquete actual. Si esta etiqueta está en un repositorio remoto, el argumento se resolverá en relación con ese repositorio. Si el argumento contiene un nombre de repositorio, se ignora la etiqueta actual y el argumento se muestra tal como está, excepto que el nombre del repositorio se reescribe si está en la asignación del repositorio actual. Las etiquetas reservadas también se mostrarán tal como están.
Por ejemplo:
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")
Si la asignación del repositorio que se pasó es {'@other' : '@remapped'}, se realizará la siguiente reasignación:
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")
Parámetros
| Parámetro | Descripción |
|---|---|
relName
|
cadena;
obligatorio Es la etiqueta que se resolverá en relación con esta. |
repo_name
string Label.repo_name
@) inicial. Por ejemplo, Label("@@foo//bar:baz").repo_name == "foo"same_package_label
Label Label.same_package_label(target_name)
Parámetros
| Parámetro | Descripción |
|---|---|
target_name
|
cadena;
obligatorio Es el nombre de destino de la etiqueta nueva. |
workspace_name
string Label.workspace_name
--+incompatible_enable_deprecated_label_apis Obsoleto. El nombre del campo "nombre del espacio de trabajo" es un nombre inapropiado aquí; usa
Label.repo_name con el mismo comportamiento.Es el nombre canónico del repositorio que contiene el destino al que hace referencia esta etiqueta, sin ningún signo de arroba (@) inicial. Por ejemplo,
Label("@@foo//bar:baz").workspace_name == "foo"workspace_root
string Label.workspace_root
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"