Es un identificador de destino de compilación.
Para cada instancia de Label
l
, la representación de cadena str(l)
tiene la propiedad que Label(str(l)) == l
, independientemente de dónde se produzca la llamada a Label()
.
Cuando se pasa como argumentos posicionales a print()
o fail()
, Label
usa una representación de cadena optimizada para la legibilidad humana. Si es posible, esta representación usa un nombre de repositorio aparente desde la perspectiva del repositorio principal.
Miembros
Etiqueta
Label Label(input)Convierte una cadena de etiqueta en un objeto
Label
, en el contexto del paquete en el que se encuentra el archivo fuente .bzl
de llamada. Si el valor determinado ya es un Label
, se muestra sin cambios.En el caso de las macros, una función relacionada, native.package_relative_label()
, convierte la entrada en un Label
en el contexto del paquete que se está compilando. Usa esa función para imitar la conversión de cadena a etiqueta que realizan automáticamente los atributos de reglas con valores de etiqueta.
Parámetros
Parámetro | Descripción |
---|---|
input
|
cadena o Etiqueta;
obligatorio Es la cadena de la etiqueta de entrada o el objeto Label. Si se pasa un objeto Label, se muestra tal como está. |
nombre
string Label.nameEs el nombre del objetivo al que hace referencia esta etiqueta. Por ejemplo:
Label("@@foo//pkg/foo:abc").name == "abc"
paquete
string Label.packageEs el nombre del paquete que contiene el destino al que hace referencia esta etiqueta, sin el nombre del repositorio. Por ejemplo:
Label("@@repo//pkg/foo:abc").package == "pkg/foo"
relativo
Label Label.relative(relName)Experimental: Esta API es experimental y puede cambiar en cualquier momento. No dependas de ella. Se puede habilitar de forma experimental configurando
--+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 repo 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 vuelve a escribir si está en la asignación de 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 de repositorio que se pasa 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_nameEs el nombre canónico del repositorio que contiene el destino al que hace referencia esta etiqueta, sin arrobas iniciales (
@
). Por ejemplo, Label("@@foo//bar:baz").repo_name == "foo"
same_package_label
Label Label.same_package_label(target_name)Crea una etiqueta en el mismo paquete que esta etiqueta con el nombre de destino determinado.
Parámetros
Parámetro | Descripción |
---|---|
target_name
|
cadena;
obligatorio Es el nombre de destino de la etiqueta nueva. |
workspace_name
string Label.workspace_nameExperimental: Esta API es experimental y puede cambiar en cualquier momento. No dependas de ella. Se puede habilitar de forma experimental configurando
--+incompatible_enable_deprecated_label_apis
Obsoleto. El nombre del campo "nombre del espacio de trabajo" es un nombre incorrecto. En su lugar, usa
Label.repo_name
, que tiene el mismo comportamiento.Es el nombre canónico del repositorio que contiene el destino al que hace referencia esta etiqueta, sin arrobas iniciales (@
). Por ejemplo,
Label("@@foo//bar:baz").workspace_name == "foo"
workspace_root
string Label.workspace_rootMuestra la raíz de ejecución del repositorio que contiene el destino al que hace referencia esta etiqueta, en relación con el execroot. Por ejemplo:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"