Etiqueta

Informar un problema Ver fuente Noche

Un identificador de destino de BUILD.

Para cada l de instancia de Label, la representación de cadena str(l) tiene la propiedad que Label(str(l)) == l, sin importar dónde ocurre la llamada a Label().

Cuando se pasan como argumentos posicionales a print() o fail(), Label usa una representación de cadena optimizada para la legibilidad humana. En esta representación, se usa un nombre de repositorio aparente desde la perspectiva del repositorio principal, si es posible.

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 de origen .bzl que realiza la llamada. Si el valor dado ya es Label, se muestra sin cambios.

En el caso de las macros, una función relacionada, native.package_relative_label(), convierte la entrada en Label en el contexto del paquete que se está construyendo. Usa esa función para imitar la conversión de cadena a etiqueta que se realiza automáticamente mediante los atributos de reglas con valor de etiqueta.

Parámetros

Parámetro Descripción
input string o Label; obligatorio
La string de la etiqueta de entrada o el objeto Label. Si se pasa un objeto Label, se muestra tal como está.

name

string Label.name

El nombre del destino al que hace referencia esta etiqueta. Por ejemplo:
Label("@@foo//pkg/foo:abc").name == "abc"

paquete

string Label.package

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"

relative

Label Label.relative(relName)

Experimental. Esta API es experimental y puede cambiar en cualquier momento. No dependa de él. Se puede habilitar de forma experimental con la configuración de --+incompatible_enable_deprecated_label_apis
Obsoleto. Este método tiene un comportamiento sorprendente cuando se usa con un argumento que contiene un nombre de repositorio aparente. En su lugar, prefieres Label.same_package_label(), native.package_relative_label() o Label().

Resuelve una etiqueta que es absoluta (comienza con //) o relativa al paquete actual. Si la 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 actual del repositorio. Las etiquetas reservadas también se mostrarán sin modificaciones.
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 producirá la siguiente reasignación:

Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")

Parámetros

Parámetro Descripción
relName string; required
Es la etiqueta que se resolverá en relación con esta.

repo_name

string Label.repo_name

El nombre canónico del repositorio que contiene el destino al que hace referencia esta etiqueta, sin signos arroba 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 dado.

Parámetros

Parámetro Descripción
target_name string; required
Corresponde al nombre objetivo de la etiqueta nueva.

workspace_name

string Label.workspace_name

Experimental. Esta API es experimental y puede cambiar en cualquier momento. No dependa de él. Se puede habilitar de forma experimental con la configuración de --+incompatible_enable_deprecated_label_apis
Obsoleto. El nombre del campo “nombre del lugar de trabajo” es inapropiado aquí. En su lugar, usa Label.repo_name de comportamiento idéntico.

El nombre canónico del repositorio que contiene el destino al que hace referencia esta etiqueta, sin signos arroba iniciales (@). Por ejemplo,

Label("@@foo//bar:baz").workspace_name == "foo"

workspace_root

string Label.workspace_root

Muestra la raíz de ejecución del repositorio que contiene el destino al que hace referencia esta etiqueta, en relación con execroot. Por ejemplo:
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"