Miembros
- todos
- analysis_test_transition
- cualquiera
- archive_override
- aspecto
- bazel_dep
- vincular
- bool
- configuration_field
- depset
- dict
- dir
- enumerar
- exec_group
- fallar
- float
- getattr
- git_override
- hasattr
- hash
- Número entero
- len
- list
- local_path_override
- max
- min
- module
- module_extension
- multiple_version_override
- proveedor
- range
- register_execution_platforms()
- register_execution_platforms(dev_dependency)
- register_toolchains()
- register_toolchains(dev_dependency)
- repository_rule
- repr.
- revertido
- regla
- seleccionar
- single_version_override
- ordenado
- str
- tag_class
- tupla
- tipo
- use_extension
- use_repo
- visibilidad
- lugar de trabajo
- comprimir
todos
bool all(elements)
all(["hello", 3, True]) == True all([-1, 0, 1]) == False
Parámetros
Parámetro | Descripción |
---|---|
elements
|
obligatorio Es una cadena o una colección de elementos. |
analysis_test_transition
transition analysis_test_transition(settings)
Crea una transición de configuración que se aplicará en las dependencias de una regla de análisis y prueba. Esta transición solo se puede aplicar en los atributos de reglas con analysis_test = True
. Esas reglas tienen capacidades de restricción (por ejemplo, el tamaño de su árbol de dependencias es limitado), por lo que las transiciones creadas con esta función tienen un alcance potencial limitado en comparación con las transiciones creadas con Transition.
Esta función está diseñada principalmente para facilitar la biblioteca principal del framework de prueba de análisis. Consulta su documentación (o su implementación) para conocer las prácticas recomendadas.
Parámetros
Parámetro | Descripción |
---|---|
settings
|
obligatorio Es un diccionario que contiene información sobre los ajustes de configuración que debe establecerse con esta transición de configuración. Las claves son etiquetas de configuración de compilación, y los valores son sus nuevos valores posteriores a la transición. El resto de la configuración no se modificará. Úsalo para declarar los parámetros de configuración específicos que una prueba de análisis requiere que se establezca para aprobar. |
cualquiera
bool any(elements)
any([-1, 0, 1]) == True any([False, 0, ""]) == False
Parámetros
Parámetro | Descripción |
---|---|
elements
|
obligatorio Es una cadena o una colección de elementos. |
archive_override
None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)
Parámetros
Parámetro | Descripción |
---|---|
module_name
|
obligatorio Es el nombre de la dependencia del módulo de Bazel a la que se aplicará esta anulación. |
urls
|
string; or Iterable of strings ;
obligatoriolas URL del archivo pueden ser URLs http(s):// o file://. |
integrity
|
predeterminado = '' La suma de verificación esperada del archivo de almacenamiento, en formato de integridad de los subrecursos. |
strip_prefix
|
predeterminado = '' Un prefijo de directorio para quitar los archivos extraídos. |
patches
|
Iterable of strings ;
predeterminado = []Una lista de etiquetas que apuntan a archivos de parche para aplicar en este módulo. Los archivos de parche deben existir en el árbol fuente del proyecto de nivel superior. Se aplican en el orden de lista. |
patch_cmds
|
Iterable of strings ;
predeterminado = []Secuencia de comandos de Bash que se aplicará en Linux/Macos después de aplicar los parches. |
patch_strip
|
valor predeterminado = 0 Es igual que el argumento --strip del parche de Unix. |
aspecto
Aspect aspect(implementation, attr_aspects=[], attrs=None, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None)
Parámetros
Parámetro | Descripción |
---|---|
implementation
|
obligatorio Es una función de Starlark que implementa este aspecto, con exactamente dos parámetros: Target (el objetivo al que se aplica el aspecto) y ctx (el contexto de la regla desde el que se creó el objetivo). Los atributos del destino están disponibles en el campo ctx.rule . Esta función se evalúa durante la fase de análisis de cada aplicación de un aspecto a un objetivo.
|
attr_aspects
|
sequence of strings ;
predeterminado = []Lista de nombres de atributos. El aspecto se propaga a lo largo de las dependencias especificadas en los atributos de un destino con estos nombres. Los valores comunes aquí incluyen deps y exports . La lista también puede contener una sola cadena "*" para propagarse a lo largo de todas las dependencias de un destino.
|
attrs
|
dict; or None ;
predeterminado = NingunoEs un diccionario que declara todos los atributos del aspecto. Asigna un nombre de atributo a un objeto de atributo, como `attr.label` o `attr.string` (consulta el módulo attr). Los atributos de aspecto están disponibles para la función de implementación como campos del parámetro ctx . Los atributos implícitos que comienzan con Los atributos explícitos deben tener el tipo |
required_providers
|
predeterminado = [] Este atributo permite que el aspecto limite su propagación solo a los destinos cuyas reglas anuncien sus proveedores obligatorios. El valor debe ser una lista que contenga proveedores individuales o listas de proveedores, pero no ambos. Por ejemplo, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] es un valor válido, mientras que [FooInfo, BarInfo, [BazInfo, QuxInfo]] no lo es.Una lista de proveedores no anidada se convertirá automáticamente en una lista que contenga una lista de proveedores. Es decir, Para que algunos objetivos de reglas (p.ej., |
required_aspect_providers
|
predeterminado = [] Este atributo permite que este aspecto inspeccione otros aspectos. El valor debe ser una lista que contenga proveedores individuales o listas de proveedores, pero no ambos. Por ejemplo, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] es un valor válido, mientras que [FooInfo, BarInfo, [BazInfo, QuxInfo]] no lo es.Una lista de proveedores no anidada se convertirá automáticamente en una lista que contenga una lista de proveedores. Es decir, Para que otro aspecto (p.ej., |
provides
|
predeterminado = [] Una lista de proveedores que debe mostrar la función de implementación. Es un error si la función de implementación omite cualquiera de los tipos de proveedores que se enumeran aquí de su valor que se muestra. Sin embargo, la función de implementación puede mostrar proveedores adicionales que no se mencionan aquí. Cada elemento de la lista es un objeto |
requires
|
sequence of Aspects ;
predeterminado = []Lista de aspectos que se deben propagar antes de este aspecto. |
fragments
|
sequence of strings ;
predeterminado = []Lista de nombres de fragmentos de configuración que el aspecto requiere en la configuración de destino. |
host_fragments
|
sequence of strings ;
predeterminado = []Lista de nombres de fragmentos de configuración que el aspecto requiere en la configuración del host. |
toolchains
|
sequence ;
predeterminado = []Si se establece, el conjunto de cadenas de herramientas que requiere esta regla. La lista puede contener objetos String, Label o StarlarkToolchainTypeApi, en cualquier combinación. Las cadenas de herramientas se encontrarán revisando la plataforma actual y se proporcionarán a la implementación de reglas a través de ctx.toolchain .
|
incompatible_use_toolchain_transition
|
predeterminado = Falso Este servicio es obsoleto, ya no está en uso y debería quitarse. |
doc
|
predeterminado = '' Una descripción del aspecto que se puede extraer con herramientas de generación de documentación. |
apply_to_generating_rules
|
predeterminado = Falso Si es verdadero, el aspecto, cuando se aplique a un archivo de salida, se aplicará a la regla de generación del archivo de salida. Por ejemplo, supongamos que un aspecto se propaga transitivamente a través del atributo "deps" y se aplica al destino "alpha". Supongamos que `alpha` tiene `deps = [':beta_output']`, en el que `beta_output` es un resultado declarado de un objetivo `beta`. Supongamos que `beta` tiene un `charlie` de destino como uno de sus `deps`. Si "apply_to_generating_rules=True" para el aspecto, este se propagará a través de "alpha", "beta" y "charlie". Si es falso, el aspecto se propagará solo a "alfa". Falso de forma predeterminada. |
exec_compatible_with
|
sequence of strings ;
predeterminado = []Es una lista de restricciones en la plataforma de ejecución que se aplican a todas las instancias de este aspecto. |
exec_groups
|
dict; or None ;
predeterminado = NingunoDictado del nombre del grupo de ejecución (cadena) a exec_group s. Si se establece, permite que los aspectos ejecuten acciones en varias plataformas de ejecución dentro de una sola instancia. Consulta la documentación de grupos de ejecución para obtener más información.
|
bazel_dep
None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)
Parámetros
Parámetro | Descripción |
---|---|
name
|
obligatorio El nombre del módulo que se agregará como dependencia directa. |
version
|
predeterminado = '' La versión del módulo que se agregará como dependencia directa. |
max_compatibility_level
|
valor predeterminado = -1 El valor máximo de compatibility_level que se admite para que el módulo se agregue como dependencia directa. La versión del módulo implica el nivel de compatibilidad mínimo admitido, así como el máximo si no se especifica este atributo.
|
repo_name
|
predeterminado = '' El nombre del repositorio externo que representa esta dependencia. Este es el nombre del módulo de forma predeterminada. |
dev_dependency
|
predeterminado = Falso Si el valor es verdadero, esta dependencia se ignorará si el módulo actual no es el módulo raíz o si se habilita `--ignore_dev_dependency`. |
vincular
None bind(name, actual=None)
Advertencia: No se recomienda usar bind()
. Consulta Considera quitar la vinculación para obtener un análisis extenso de sus problemas y alternativas.
Otorga a un objetivo un alias en el paquete //external
.
Parámetros
Parámetro | Descripción |
---|---|
name
|
obligatorio La etiqueta de “//external” para que sirva como el nombre del alias |
actual
|
string; or None ;
predeterminado = NingunoLa etiqueta real a la que se le asignará un alias |
bool
bool bool(x=False)
False
si el objeto es None
, False
, una cadena vacía (""
), el número 0
o una colección vacía (p.ej., ()
o []
). De lo contrario, muestra True
.
Parámetros
Parámetro | Descripción |
---|---|
x
|
predeterminado = Falso La variable que se va a convertir. |
configuration_field
LateBoundDefault configuration_field(fragment, name)
Ejemplo de uso:
Cómo definir un atributo de regla:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
Acceso en la implementación de reglas:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
Parámetros
Parámetro | Descripción |
---|---|
fragment
|
obligatorio Es el nombre de un fragmento de configuración que contiene el valor de límite tardío. |
name
|
obligatorio Es el nombre del valor que se obtendrá del fragmento de configuración. |
depset
depset depset(direct=None, order="default", *, transitive=None)
direct
es una lista de elementos directos del depset, y el parámetro transitive
es una lista de depsets cuyos elementos se convierten en elementos indirectos del depset creado. El parámetro order
especifica el orden en que se muestran los elementos cuando el depset se convierte en una lista. Consulta la Descripción general de las dependencias para obtener más información.
Todos los elementos (directos e indirectos) de un depósito deben ser del mismo tipo, como se obtuvo por la expresión type(x)
.
Debido a que un conjunto basado en hash se usa para eliminar duplicados durante la iteración, todos los elementos de un depset deben tener codificación hash. Sin embargo, esta invariante no se verifica de manera coherente en todos los constructores. Usar la marca --incompatible_always_check_depset_elements para habilitar la verificación coherente este será el comportamiento predeterminado en versiones futuras. consulta el error 10313.
Además, los elementos deben ser inmutables, aunque esta restricción se relajará en el futuro.
El orden del depset creado debe ser compatible con el orden de sus destinos de transitive
. El pedido de "default"
es compatible con cualquier otro pedido. Los demás pedidos solo son compatibles con ellos mismos.
Nota sobre retrocompatibilidad. Actualmente, esta función acepta un parámetro posicional items
. Dejó de estar disponible y se quitará en el futuro. Además, después de su eliminación, direct
se convertirá en un único parámetro posicional de la función depset
. Por lo tanto, las siguientes dos llamadas son equivalentes y están preparadas para el futuro:
depset(['a', 'b'], transitive = [...]) depset(direct = ['a', 'b'], transitive = [...])
Parámetros
Parámetro | Descripción |
---|---|
direct
|
sequence; or None ;
predeterminado = NingunoEs una lista de elementos directos de un depósito. |
order
|
default = “default” La estrategia de recorrido para el nuevo depset. Consulta aquí los valores posibles. |
transitive
|
sequence of depsets; or None ;
predeterminado = NingunoEs una lista de los depsets cuyos elementos se convertirán en elementos indirectos del depset. |
diccionario
dict dict(pairs=[], **kwargs)
Parámetros
Parámetro | Descripción |
---|---|
pairs
|
predeterminado = [] Un dict o un iterable cuyos elementos tienen cada longitud 2 (clave, valor). |
kwargs
|
obligatorio Diccionario de entradas adicionales. |
dir
list dir(x)
Parámetros
Parámetro | Descripción |
---|---|
x
|
obligatorio El objeto que se va a comprobar. |
enumerar
list enumerate(list, start=0)
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]
Parámetros
Parámetro | Descripción |
---|---|
list
|
obligatorio secuencia de entrada. |
start
|
valor predeterminado = 0 índice de inicio. |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[], copy_from_rule=False)
Parámetros
Parámetro | Descripción |
---|---|
toolchains
|
sequence ;
predeterminado = []Es el conjunto de cadenas de herramientas que requiere este grupo de ejecución. La lista puede contener objetos String, Label o StarlarkToolchainTypeApi, en cualquier combinación. |
exec_compatible_with
|
sequence of strings ;
predeterminado = []Una lista de restricciones en la plataforma de ejecución. |
copy_from_rule
|
predeterminado = Falso Si se configura como true, este grupo de ejecución hereda las cadenas de herramientas y las restricciones de la regla a la que se adjunta este grupo. Si se establece en cualquier otra cadena, se producirá un error. |
desaprobado
None fail(msg=None, attr=None, *args)
Parámetros
Parámetro | Descripción |
---|---|
msg
|
valor predeterminado = Ninguno Obsoleto: usa argumentos posicionales en su lugar. Este argumento actúa como un argumento posicional inicial implícito. |
attr
|
string; or None ;
predeterminado = NingunoObsoleto. Hace que un prefijo opcional que contenga esta cadena se agregue al mensaje de error. |
args
|
obligatorio Una lista de valores, con el formato de debugPrint (que es equivalente a str de forma predeterminada) y unidos con espacios, que aparecen en el mensaje de error. |
float
float float(x=unbound)
- Si
x
ya es un número de punto flotante,float
lo muestra sin cambios. - Si
x
es un bool,float
muestra 1.0 para True y 0.0 para False. - Si
x
es un int,float
muestra el valor de punto flotante finito más cercano a x, o un error si la magnitud es demasiado grande. - Si
x
es una string, debe ser un literal de punto flotante válido o ser igual (sin distinguir entre mayúsculas y minúsculas) aNaN
,Inf
oInfinity
, opcionalmente precedido por un signo+
o-
.
float()
muestra 0.0.
Parámetros
Parámetro | Descripción |
---|---|
x
|
predeterminado = no delimitado Valor que se va a convertir. |
getattr
unknown getattr(x, name, default=unbound)
default
(si se especifica) o genera un error. getattr(x, "foobar")
es igual a x.foobar
.getattr(ctx.attr, "myattr") getattr(ctx.attr, "myattr", "mydefault")
Parámetros
Parámetro | Descripción |
---|---|
x
|
obligatorio El struct al que se accede al atributo. |
name
|
obligatorio Es el nombre del atributo struct. |
default
|
predeterminado = no delimitado El valor predeterminado que se muestra en caso de que la struct no tenga un atributo con el nombre dado. |
git_override
None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)
Parámetros
Parámetro | Descripción |
---|---|
module_name
|
obligatorio Es el nombre de la dependencia del módulo de Bazel a la que se aplicará esta anulación. |
remote
|
obligatorio La URL del repositorio de Git remoto. |
commit
|
predeterminado = '' La confirmación que se debe comprobar. |
patches
|
Iterable of strings ;
predeterminado = []Una lista de etiquetas que apuntan a archivos de parche para aplicar en este módulo. Los archivos de parche deben existir en el árbol fuente del proyecto de nivel superior. Se aplican en el orden de lista. |
patch_cmds
|
Iterable of strings ;
predeterminado = []Secuencia de comandos de Bash que se aplicará en Linux/Macos después de aplicar los parches. |
patch_strip
|
valor predeterminado = 0 Es igual que el argumento --strip del parche de Unix. |
hasattr
bool hasattr(x, name)
x
tiene un atributo o método de la name
especificada; de lo contrario, muestra False. Ejemplo:hasattr(ctx.attr, "myattr")
Parámetros
Parámetro | Descripción |
---|---|
x
|
obligatorio El objeto que se va a comprobar. |
name
|
obligatorio Es el nombre del atributo. |
hash
int hash(value)
String.hashCode()
de Java, es decir: s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
Parámetros
Parámetro | Descripción |
---|---|
value
|
obligatorio Valor de cadena para generar un hash |
int
int int(x, base=unbound)
- Si
x
ya es un int,int
lo muestra sin cambios. - Si
x
es un bool,int
muestra 1 para Verdadero y 0 para Falso. - Si
x
es una cadena, debe tener el formato<sign><prefix><digits>
.<sign>
es"+"
,"-"
o está vacío (se interpreta como positivo).<digits>
son una secuencia de dígitos del 0 albase
-1, en la que las letras de la “a” a la “z” (o de la “A” a la “Z) se usan como dígitos del 10 al 35. En el caso en quebase
sea 2/8/16,<prefix>
es opcional y puede ser 0b/0o/0x (o, de manera equivalente, 0B/0O/0X), respectivamente. Sibase
es cualquier otro valor además de estas bases o el valor especial 0, el prefijo debe estar vacío. En el caso en quebase
sea 0, la cadena se interpreta como un literal de número entero, en el sentido de que se elige una de las bases 2/8/10/16 según el prefijo que se usa. Sibase
es 0, no se usa ningún prefijo y hay más de un dígito, el dígito inicial no puede ser 0. esto es para evitar confusiones entre octal y decimal. La magnitud del número representado por la cadena debe estar dentro del rango permitido para el tipo int. - Si
x
es un número de punto flotante,int
muestra el valor entero del número de punto flotante y se redondea hacia cero. Es un error si x no es finito (NaN o infinito).
x
es de cualquier otro tipo o si el valor es una string que no cumple con el formato anterior. A diferencia de la función int
de Python, esta función no permite cero argumentos ni permite espacios en blanco irrelevantes para argumentos de cadena.Ejemplos:
int("123") == 123 int("-123") == -123 int("+123") == 123 int("FF", 16) == 255 int("0xFF", 16) == 255 int("10", 0) == 10 int("-0x10", 0) == -16 int("-0x10", 0) == -16 int("123.456") == 123
Parámetros
Parámetro | Descripción |
---|---|
x
|
obligatorio Cadena que se va a convertir |
base
|
predeterminado = no delimitado La base utilizada para interpretar un valor de cadena; el valor predeterminado es 10. Debe ser entre 2 y 36 (inclusive), o 0 para detectar la base como si x fuera un literal de número entero. No se debe proporcionar este parámetro si el valor no es una cadena.
|
len
int len(x)
Parámetros
Parámetro | Descripción |
---|---|
x
|
obligatorio Valor cuya longitud se informará. |
list
list list(x=[])
list([1, 2]) == [1, 2] list((2, 3, 2)) == [2, 3, 2] list({5: "a", 2: "b", 4: "c"}) == [5, 2, 4]
Parámetros
Parámetro | Descripción |
---|---|
x
|
predeterminado = [] El objeto que se convertirá. |
local_path_override
None local_path_override(module_name, path)
Parámetros
Parámetro | Descripción |
---|---|
module_name
|
obligatorio Es el nombre de la dependencia del módulo de Bazel a la que se aplicará esta anulación. |
path
|
obligatorio La ruta de acceso al directorio en el que se encuentra este módulo. |
máx.
unknown max(*args)
max(2, 5, 4) == 5 max([5, 6, 3]) == 6
Parámetros
Parámetro | Descripción |
---|---|
args
|
obligatorio Elementos que se deben comprobar. |
min
unknown min(*args)
min(2, 5, 4) == 2 min([5, 6, 3]) == 3
Parámetros
Parámetro | Descripción |
---|---|
args
|
obligatorio Elementos que se deben comprobar. |
module
None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])
Se debe llamar como máximo una vez. Se puede omitir solo si este módulo es el módulo raíz (como en el caso de que otro módulo no dependa de él).
Parámetros
Parámetro | Descripción |
---|---|
name
|
predeterminado = '' El nombre del módulo. Se puede omitir solo si este módulo es el módulo raíz (como en el caso de que otro módulo no dependa de él). Un nombre de módulo válido debe: 1) contener solo letras minúsculas (a-z), dígitos (0-9), puntos (.), guiones (-) y guiones bajos (_); 2) comiencen con una letra minúscula; 3) Terminar con una letra minúscula o un número |
version
|
predeterminado = '' La versión del módulo. Se puede omitir solo si este módulo es el módulo raíz (como en el caso de que otro módulo no dependa de él). |
compatibility_level
|
valor predeterminado = 0 El nivel de compatibilidad del módulo cada vez que se introduzca un cambio incompatible importante. Esta es básicamente la "versión principal" del módulo en términos de SemVer, excepto que no está incorporado en la cadena de versión en sí, sino que existe como un campo separado. Los módulos con diferentes niveles de compatibilidad participan en la resolución de versión como si fueran módulos con nombres diferentes, pero el gráfico de dependencia final no puede contener varios módulos con el mismo nombre, pero con diferentes niveles de compatibilidad (a menos que multiple_version_override esté vigente; consulta más detalles allí).
|
repo_name
|
predeterminado = '' El nombre del repositorio que representa a este módulo, tal como lo ve el módulo en sí. De forma predeterminada, el nombre del repositorio es el nombre del módulo. Esto se puede especificar para facilitar la migración de proyectos que hayan usado un nombre de repositorio diferente del nombre de módulo. |
bazel_compatibility
|
Iterable of strings ;
predeterminado = []Una lista de versiones de Bazel que permite a los usuarios declarar qué versiones de Bazel son compatibles con este módulo. NO afecta la resolución de dependencias, pero bzlmod usará esta información para verificar si tu versión actual de Bazel es compatible. El formato de este valor es una string de algunos valores de restricción separados por comas. Se admiten tres restricciones: <=X.X.X: La versión de Bazel debe ser igual o anterior a X.X.X. Se usa cuando hay un cambio incompatible conocido en una versión más reciente. >=X.X.X: La versión de Bazel debe ser igual o posterior a X.X.X.Se usa cuando dependes de algunas funciones que solo están disponibles a partir de X.X.X. -X.X.X: La versión X.X.X de Bazel no es compatible. Se usa cuando hay un error en X.X.X que genera problemas, pero que se corrigió en versiones posteriores. |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc='', environ=[], os_dependent=False, arch_dependent=False)
Parámetros
Parámetro | Descripción |
---|---|
implementation
|
obligatorio Es la función que implementa la extensión de este módulo. Debe tomar un solo parámetro, module_ctx . Se llama a la función una vez al comienzo de una compilación para determinar el conjunto de repositorios disponibles.
|
tag_classes
|
default = {} Un diccionario para declarar todas las clases de etiquetas que usa la extensión. Se asigna del nombre de la clase de etiqueta a un objeto tag_class .
|
doc
|
predeterminado = '' Una descripción de la extensión del módulo que se puede extraer con herramientas de generación de documentación. |
environ
|
sequence of strings ;
predeterminado = []Proporciona una lista de las variables de entorno de las que depende esta extensión de módulo. Si cambia una variable de entorno de esa lista, se volverá a evaluar la extensión. |
os_dependent
|
predeterminado = Falso Indica si esta extensión depende del SO o no |
arch_dependent
|
predeterminado = Falso Indica si esta extensión depende o no de la arquitectura |
multiple_version_override
None multiple_version_override(module_name, versions, registry='')
Parámetros
Parámetro | Descripción |
---|---|
module_name
|
obligatorio Es el nombre de la dependencia del módulo de Bazel a la que se aplicará esta anulación. |
versions
|
Iterable of strings ;
obligatorioEspecifica de forma explícita las versiones que pueden coexistir. Estas versiones ya deben estar presentes en la selección previa del gráfico de dependencia. Se “actualizarán” las dependencias de este módulo a la versión permitida superior más cercana con el mismo nivel de compatibilidad, mientras que las dependencias que tengan una versión superior a cualquier versión permitida con el mismo nivel de compatibilidad causarán un error. |
registry
|
predeterminado = '' Anula el registro para este módulo; en lugar de encontrar este módulo en la lista predeterminada de registros, se debe usar el registro dado. |
imprimir
None print(sep=" ", *args)
args
como resultado de depuración. Tendrá el prefijo de la cadena "DEBUG"
y la ubicación (archivo y número de línea) de esta llamada. No se especificó la forma exacta en que los argumentos se convierten en cadenas y puede cambiar en cualquier momento. En particular, puede ser diferente (y más detallado) que el formato de str()
y repr()
.No se recomienda usar print
en el código de producción debido al spam que crea para los usuarios. Para las bajas, es preferible que uses un error grave con fail()
siempre que sea posible.
Parámetros
Parámetro | Descripción |
---|---|
sep
|
default = " " Cadena de separador entre los objetos. El valor predeterminado es un espacio (" "). |
args
|
obligatorio Los objetos que se imprimirán. |
proveedor
unknown provider(doc='', *, fields=None, init=None)
MyInfo = provider() ... def _my_library_impl(ctx): ... my_info = MyInfo(x = 2, y = 3) # my_info.x == 2 # my_info.y == 3 ...
Consulta Reglas (proveedores) para obtener una guía completa sobre cómo usar los proveedores.
Muestra un valor Provider
que admite llamadas si no se especifica init
.
Si se especifica init
, muestra una tupla de 2 elementos: un valor que admite llamadas Provider
y un valor que admite llamadas de structor sin procesar. Consulta Reglas (Inicialización personalizada de proveedores personalizados) y el debate sobre el parámetro init
a continuación para obtener más detalles.
Parámetros
Parámetro | Descripción |
---|---|
doc
|
predeterminado = '' Una descripción del proveedor que se puede extraer con herramientas de generación de documentación. |
fields
|
sequence of strings; or dict; or None ;
predeterminado = NingunoSi se especifica, restringe el conjunto de campos permitidos. Los valores posibles son los siguientes:
|
init
|
callable; or None ;
predeterminado = NingunoUna devolución de llamada opcional para el procesamiento previo y la validación de los valores de campo del proveedor durante la creación de la instancia. Si se especifica init , provider() muestra una tupla de 2 elementos: el símbolo normal del proveedor y un constructor sin procesar.A continuación, se incluye una descripción precisa. consulta Reglas (Inicialización personalizada de proveedores) para acceder a un análisis y casos de uso intuitivos. Deja que
init , una llamada al símbolo P actúa como una llamada a la función de constructor predeterminada c . en otras palabras, P(*args, **kwargs) muestra c(*args, **kwargs) . Por ejemplo:MyInfo = provider() m = MyInfo(foo = 1) m sea una instancia de MyInfo con m.foo == 1 .Sin embargo, cuando se especifique
Nota: Los pasos anteriores implican que se produce un error si De esta manera, la devolución de llamada Cuando se especifica MyInfo, _new_myinfo = provider(init = ...) |
rango
sequence range(start_or_stop, stop_or_none=None, step=1)
start
a stop
, con un incremento de step
. Si se proporciona un solo argumento, los elementos van desde 0 hasta ese elemento.range(4) == [0, 1, 2, 3] range(3, 9, 2) == [3, 5, 7] range(3, 0, -1) == [3, 2, 1]
Parámetros
Parámetro | Descripción |
---|---|
start_or_stop
|
obligatorio Valor del elemento de inicio si se proporciona parada; de lo contrario, el valor de parada y el inicio real es 0 |
stop_or_none
|
int; or None ;
predeterminado = Ningunoíndice opcional del primer elemento que no se incluirá en la lista resultante generación de la lista se detiene antes de alcanzar el stop .
|
step
|
predeterminado = 1 El incremento (el valor predeterminado es 1). Puede ser negativa. |
register_execution_platforms()
None register_execution_platforms(*platform_labels)
Parámetros
Parámetro | Descripción |
---|---|
platform_labels
|
sequence of strings ;
obligatorioLas etiquetas de las plataformas que se registrarán. |
register_execution_platforms(dev_dependency)
None register_execution_platforms(dev_dependency=False, *platform_labels)
@
o //
). Consulta la resolución de la cadena de herramientas para obtener más información.
Parámetros
Parámetro | Descripción |
---|---|
dev_dependency
|
predeterminado = Falso Si es verdadero, las plataformas de ejecución no se registrarán si el módulo actual no es el módulo raíz o si “--ignore_dev_dependency” está habilitado. |
platform_labels
|
sequence of strings ;
obligatorioLas etiquetas de las plataformas que se registrarán. |
register_toolchains()
None register_toolchains(*toolchain_labels)
Parámetros
Parámetro | Descripción |
---|---|
toolchain_labels
|
sequence of strings ;
obligatorioLas etiquetas de las cadenas de herramientas que se registrarán. |
register_toolchains(dev_dependency)
None register_toolchains(dev_dependency=False, *toolchain_labels)
@
o //
). Consulta la resolución de la cadena de herramientas para obtener más información.
Parámetros
Parámetro | Descripción |
---|---|
dev_dependency
|
predeterminado = Falso Si es verdadero, los conjuntos de herramientas no se registrarán si el módulo actual no es el módulo raíz o si está habilitado `--ignore_dev_dependency`. |
toolchain_labels
|
sequence of strings ;
obligatorioLas etiquetas de las cadenas de herramientas que se registrarán. |
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')
Parámetros
Parámetro | Descripción |
---|---|
implementation
|
obligatorio la función que implementa esta regla. Debe tener un solo parámetro, repository_ctx . Se llama a la función durante la fase de carga para cada instancia de la regla.
|
attrs
|
dict; or None ;
predeterminado = Ningunodiccionario para declarar todos los atributos de la regla. Asigna de un nombre de atributo a un objeto de atributo (consulta el módulo attr). Los atributos que comienzan con _ son privados y se pueden usar para agregar una dependencia implícita de una etiqueta a un archivo (una regla de repositorio no puede depender de un artefacto generado). El atributo name se agrega de forma implícita y no debe especificarse.
|
local
|
predeterminado = Falso Indica que esta regla recupera todo del sistema local y que debe volver a evaluarse en cada recuperación. |
environ
|
sequence of strings ;
predeterminado = []Proporciona una lista de las variables de entorno de las que depende esta regla del repositorio. Si cambia una variable de entorno de esa lista, se volverá a recuperar el repositorio. |
configure
|
predeterminado = Falso Indicar que el repositorio inspecciona el sistema para fines de configuración |
remotable
|
predeterminado = Falso Experimental: Este parámetro es experimental y puede cambiar en cualquier momento. No dependa de él. Esta opción se puede habilitar de forma experimental estableciendo ---experimental_repo_remote_exec Compatible con la ejecución remota. |
doc
|
predeterminado = '' Una descripción de la regla del repositorio que se puede extraer con herramientas de generación de documentación. |
representante
string repr(x)
repr("ab") == '"ab"'
Parámetros
Parámetro | Descripción |
---|---|
x
|
obligatorio El objeto que se convertirá. |
Revertida
list reversed(sequence)
reversed([3, 5, 4]) == [4, 5, 3]
Parámetros
Parámetro | Descripción |
---|---|
sequence
|
obligatorio La secuencia iterable (p.ej., lista) que se revertirá. |
regla
callable rule(implementation, test=False, attrs=None, outputs=None, executable=False, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, provides=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, compile_one_filetype=None, name=None)
Las reglas deben asignarse a variables globales en un archivo .bzl. el nombre de la variable global es el nombre de la regla.
Las reglas de prueba deben tener un nombre que termine en _test
, mientras que las demás reglas no deben tener este sufijo. (Esta restricción se aplica solo a las reglas, no a sus objetivos).
Parámetros
Parámetro | Descripción |
---|---|
implementation
|
obligatorio La función Starlark que implementa esta regla debe tener exactamente un parámetro: ctx. Se llama a la función durante la fase de análisis para cada instancia de la regla. Puede acceder a los atributos que proporcionó el usuario. Debe crear acciones para generar todos los resultados declarados. |
test
|
predeterminado = Falso Indica si esta es una regla de prueba, es decir, si puede estar sujeta a un comando blaze test . Todas las reglas de prueba se consideran automáticamente ejecutables. No es necesario (y se recomienda) configurar de manera explícita executable = True para una regla de prueba. Consulta la página Reglas para obtener más información.
|
attrs
|
dict; or None ;
predeterminado = Ningunodiccionario para declarar todos los atributos de la regla. Asigna de un nombre de atributo a un objeto de atributo (consulta el módulo attr). Los atributos que comienzan con _ son privados y se pueden usar para agregar una dependencia implícita en una etiqueta. El atributo name se agrega de forma implícita y no debe especificarse. Los atributos visibility , deprecation , tags , testonly y features se agregan de forma implícita y no se pueden anular. La mayoría de las reglas solo necesitan unos pocos atributos. Para limitar el uso de memoria, la función de regla impone un límite en el tamaño de los atributos.
|
outputs
|
dict; or None; or function ;
predeterminado = NingunoObsoleto. Este parámetro dejó de estar disponible y se quitará pronto. No dependa de él. Está inhabilitada con ---incompatible_no_rule_outputs_param . Usa esta función experimental para verificar que tu código sea compatible con su eliminación inminente. Este parámetro ya no está disponible. Migra las reglas para que usen OutputGroupInfo o attr.output en su lugar. Un esquema para definir resultados declarados con anterioridad. A diferencia de los atributos El valor de este argumento es un diccionario o una función de devolución de llamada que produce un diccionario. La devolución de llamada funciona de manera similar a los atributos de dependencia calculados: los nombres de los parámetros de la función se comparan con los atributos de la regla, por lo que, por ejemplo, si pasas Cada entrada en el diccionario crea un resultado declarado previamente, en el que la clave es un identificador y el valor es una plantilla de cadenas que determina la etiqueta del resultado. En la función de implementación de la regla, el identificador se convierte en el nombre del campo que se usa para acceder al
En la práctica, el marcador de posición de sustitución más común es |
executable
|
predeterminado = Falso Si esta regla se considera ejecutable, es decir, si puede estar sujeta a un comando blaze run . Consulta la página Reglas para obtener más información.
|
output_to_genfiles
|
predeterminado = Falso Si es verdadero, los archivos se generarán en el directorio genfiles en lugar del directorio bin. A menos que la necesites por cuestiones de compatibilidad con reglas existentes (p.ej., cuando se generan archivos de encabezado para C++), no establezcas esta marca. |
fragments
|
sequence of strings ;
predeterminado = []Lista de nombres de fragmentos de configuración que requiere la regla en la configuración de destino. |
host_fragments
|
sequence of strings ;
predeterminado = []Lista de nombres de fragmentos de configuración que requiere la regla en la configuración del host. |
_skylark_testable
|
predeterminado = Falso (Experimental) Si es verdadera, esta regla expondrá sus acciones para que las inspeccionen las reglas que dependen de ella a través de un proveedor de Acciones. El proveedor también está disponible para la regla llamando a ctx.created_actions(). Esto solo se debe usar para probar el comportamiento de análisis de las reglas de Starlark. Es posible que esta marca se quite en el futuro. |
toolchains
|
sequence ;
predeterminado = []Si se establece, el conjunto de cadenas de herramientas que requiere esta regla. La lista puede contener objetos String, Label o StarlarkToolchainTypeApi, en cualquier combinación. Las cadenas de herramientas se encontrarán revisando la plataforma actual y se proporcionarán a la implementación de reglas a través de ctx.toolchain .
|
incompatible_use_toolchain_transition
|
predeterminado = Falso Este servicio es obsoleto, ya no está en uso y debería quitarse. |
doc
|
predeterminado = '' Una descripción de la regla que se puede extraer con herramientas de generación de documentación. |
provides
|
predeterminado = [] Una lista de proveedores que debe mostrar la función de implementación. Es un error si la función de implementación omite cualquiera de los tipos de proveedores que se enumeran aquí de su valor que se muestra. Sin embargo, la función de implementación puede mostrar proveedores adicionales que no se mencionan aquí. Cada elemento de la lista es un objeto |
exec_compatible_with
|
sequence of strings ;
predeterminado = []Una lista de restricciones en la plataforma de ejecución que se aplican a todos los destinos de este tipo de regla. |
analysis_test
|
predeterminado = Falso Si es verdadera, esta regla se trata como una prueba de análisis. Nota: Las reglas de prueba de análisis se definen principalmente con la infraestructura proporcionada en las bibliotecas principales de Starlark. Consulta Pruebas para obtener orientación. Si una regla se define como una regla de prueba de análisis, se le permite usar transiciones de configuración definidas mediante analysis_test_transition en sus atributos, pero habilita algunas restricciones:
|
build_setting
|
BuildSetting; or None ;
predeterminado = NingunoSi se establece, describe qué tipo de build setting es esta regla. Consulta el módulo config . Si se configura, incluirá un atributo obligatorio llamado "build_setting_default" se agrega automáticamente a esta regla, con un tipo correspondiente al valor que se pasa aquí.
|
cfg
|
valor predeterminado = Ninguno Si se establece, apunta a la transición de configuración que la regla aplicará a su propia configuración antes del análisis. |
exec_groups
|
dict; or None ;
predeterminado = NingunoDictado del nombre del grupo de ejecución (cadena) a exec_group s. Si se establece, permite que las reglas ejecuten acciones en varias plataformas de ejecución dentro de un solo objetivo. Consulta la documentación de grupos de ejecución para obtener más información.
|
compile_one_filetype
|
sequence of strings; or None ;
predeterminado = NingunoUtilizado por --compile_one_dependency: si varias reglas consumen el archivo especificado, debemos elegir esta regla en lugar de otras. |
name
|
string; or None ;
predeterminado = NingunoObsoleto. Este parámetro dejó de estar disponible y se quitará pronto. No dependa de él. Está inhabilitada con --+incompatible_remove_rule_name_parameter . Usa esta función experimental para verificar que tu código sea compatible con su eliminación inminente. Obsoleto: no se debe usar. El nombre de esta regla, como la comprende Bazel y se informa en contextos como registro, Si se omite este parámetro, el nombre de la regla se establece en el nombre de la primera variable global de Starlark que se vinculará a esta regla en el módulo .bzl de declaración. Por lo tanto, Especificar un nombre explícito para una regla no cambia los lugares en los que puedes crear una instancia de la regla. |
select
unknown select(x, no_match_error='')
select()
es la función auxiliar que permite que un atributo de regla sea configurable. Consulta la enciclopedia de compilaciones para obtener más detalles.
Parámetros
Parámetro | Descripción |
---|---|
x
|
obligatorio Un dict que asigna condiciones de configuración a valores. Cada clave es una Label o una cadena de etiqueta que identifica una instancia config_setting o constraint_value. Consulta la documentación sobre macros para saber cuándo usar una etiqueta en lugar de una cadena. |
no_match_error
|
predeterminado = '' Es el error personalizado opcional para informar si ninguna condición coincide. |
single_version_override
None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)
Parámetros
Parámetro | Descripción |
---|---|
module_name
|
obligatorio Es el nombre de la dependencia del módulo de Bazel a la que se aplicará esta anulación. |
version
|
predeterminado = '' Anula la versión declarada de este módulo en el gráfico de dependencias. En otras palabras, este módulo estará “fijado” a esta versión de anulación. Este atributo se puede omitir si lo único que se desea anular es el registro o los parches. |
registry
|
predeterminado = '' Anula el registro para este módulo; en lugar de encontrar este módulo en la lista predeterminada de registros, se debe usar el registro dado. |
patches
|
Iterable of strings ;
predeterminado = []Una lista de etiquetas que apuntan a archivos de parche para aplicar en este módulo. Los archivos de parche deben existir en el árbol fuente del proyecto de nivel superior. Se aplican en el orden de lista. |
patch_cmds
|
Iterable of strings ;
predeterminado = []Secuencia de comandos de Bash que se aplicará en Linux/Macos después de aplicar los parches. |
patch_strip
|
valor predeterminado = 0 Es igual que el argumento --strip del parche de Unix. |
ordenado
list sorted(iterable, *, key=None, reverse=False)
sorted([3, 5, 4]) == [3, 4, 5]
Parámetros
Parámetro | Descripción |
---|---|
iterable
|
obligatorio La secuencia iterable para ordenar. |
key
|
valor predeterminado = Ninguno Una función opcional que se aplica a cada elemento antes de la comparación. |
reverse
|
predeterminado = Falso Muestra los resultados en orden descendente. |
str
string str(x)
str("ab") == "ab" str(8) == "8"
Parámetros
Parámetro | Descripción |
---|---|
x
|
obligatorio El objeto que se convertirá. |
tag_class
tag_class tag_class(attrs={}, *, doc='')
Parámetros
Parámetro | Descripción |
---|---|
attrs
|
default = {} Es un diccionario para declarar todos los atributos de esta clase de etiqueta. Asigna de un nombre de atributo a un objeto de atributo (consulta el módulo attr). |
doc
|
predeterminado = '' Es una descripción de la clase de etiqueta que se puede extraer con herramientas de generación de documentación. |
tuple
tuple tuple(x=())
tuple([1, 2]) == (1, 2) tuple((2, 3, 2)) == (2, 3, 2) tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)
Parámetros
Parámetro | Descripción |
---|---|
x
|
default = () El objeto que se convertirá. |
tipo
string type(x)
type(2) == "int" type([1]) == "list" type(struct(a = 2)) == "struct"
if type(x) == type([]): # if x is a list
Parámetros
Parámetro | Descripción |
---|---|
x
|
obligatorio El objeto del que se va a comprobar el tipo. |
use_extension
module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)
Parámetros
Parámetro | Descripción |
---|---|
extension_bzl_file
|
obligatorio Es una etiqueta para el archivo de Starlark que define la extensión del módulo. |
extension_name
|
obligatorio Es el nombre de la extensión del módulo que se usará. El archivo de Starlark debe exportar un símbolo con este nombre. |
dev_dependency
|
predeterminado = Falso Si es verdadero, este uso de la extensión del módulo se ignorará si el módulo actual no es el módulo raíz o si se habilita `--ignore_dev_dependency`. |
isolate
|
predeterminado = Falso Experimental: Este parámetro es experimental y puede cambiar en cualquier momento. No dependa de él. Se puede habilitar de forma experimental estableciendo ---experimental_isolated_extension_usages . Si es "true", la extensión del módulo se aislará de los demás usos, tanto en este módulo como en otros. Las etiquetas creadas para este uso no afectan otros usos, y los repositorios generados por la extensión para este uso serán distintos de todos los demás repositorios generados por la extensión. Actualmente, este parámetro es experimental y solo está disponible con la marca |
use_repo
None use_repo(extension_proxy, *args, **kwargs)
Parámetros
Parámetro | Descripción |
---|---|
extension_proxy
|
obligatorio Un objeto del proxy de extensión del módulo que muestra una llamada a use_extension .
|
args
|
obligatorio Son los nombres de los repositorios que se importarán. |
kwargs
|
obligatorio Especifica ciertos repositorios para importar al alcance del módulo actual con nombres diferentes. Las claves deben ser el nombre que se usará en el alcance actual, mientras que los valores deben ser los nombres originales que exporta la extensión del módulo. |
visibilidad
None visibility(value)
Establece la visibilidad de la carga del módulo .bzl que se está inicializando en ese momento.
La visibilidad de la carga de un módulo determina si otros archivos de COMPILACIÓN y .bzl pueden cargarlo. (Esto es distinto de la visibilidad objetivo del archivo fuente .bzl subyacente, que determina si el archivo puede aparecer como una dependencia de otros destinos). La visibilidad de carga funciona a nivel de paquetes: para cargar un módulo, el archivo que realiza la carga debe estar en un paquete al que se le haya otorgado visibilidad para el módulo. Un módulo siempre se puede cargar dentro de su propio paquete, independientemente de su visibilidad.
Solo se puede llamar a visibility()
una vez por archivo .bzl y solo en el nivel superior, no dentro de una función. El estilo preferido es colocar esta llamada inmediatamente debajo de las sentencias load()
y cualquier lógica breve necesaria para determinar el argumento.
Si la marca --check_bzl_visibility
se establece como falsa, las infracciones de visibilidad de carga emitirán advertencias, pero no fallará la compilación.
Parámetros
Parámetro | Descripción |
---|---|
value
|
obligatorio Una lista de cadenas de especificación del paquete o una sola cadena de especificación del paquete. Las especificaciones del paquete siguen el mismo formato que para
La "@" la sintaxis no está permitida; todas las especificaciones se interpretan en relación con el repositorio actual del módulo. Si Ten en cuenta que las marcas |
lugar de trabajo
None workspace(name)
Esta función solo se puede usar en un archivo WORKSPACE
y se debe declarar antes que todas las demás funciones del archivo WORKSPACE
. Cada archivo WORKSPACE
debe tener una función workspace
.
Establece el nombre de este lugar de trabajo. Los nombres de los lugares de trabajo deben ser una descripción del proyecto al estilo de paquete de Java, utilizando guiones bajos como separadores; p.ej., github.com/bazelbuild/bazel debería usar com_github_bazelbuild_bazel.
Este nombre se usa para el directorio en el que se almacenan los archivos de run del repositorio. Por ejemplo, si hay un archivo de ejecución foo/bar
en el repositorio local y el archivo WORKSPACE contiene workspace(name = 'baz')
, el archivo de ejecución estará disponible en mytarget.runfiles/baz/foo/bar
. Si no se especifica un nombre de lugar de trabajo, el archivo de ejecución se vinculará con un symlink a bar.runfiles/foo/bar
.
Los nombres de las reglas del repositorio remoto deben ser nombres de lugares de trabajo válidos. Por ejemplo, podrías tener maven_jar(name = 'foo')
, pero no maven_jar(name = 'foo%bar')
, ya que Bazel intentaría escribir un archivo WORKSPACE para la maven_jar
que contiene workspace(name = 'foo%bar')
.
Parámetros
Parámetro | Descripción |
---|---|
name
|
obligatorio el nombre del lugar de trabajo. Los nombres deben comenzar con una letra y solo pueden contener letras, números, guiones bajos, guiones y puntos. |
zip
list zip(*args)
list
de tuple
, en el que la tupla i-ésima contiene el elemento i-ésimo de cada una de las secuencias de argumentos o iterables. La lista tiene el tamaño de la entrada más corta. Con un solo argumento iterable, muestra una lista de 1-tuplas. Si no hay argumentos, se muestra una lista vacía. Ejemplos:zip() # == [] zip([1, 2]) # == [(1,), (2,)] zip([1, 2], [3, 4]) # == [(1, 3), (2, 4)] zip([1, 2], [3, 4, 5]) # == [(1, 3), (2, 4)]
Parámetros
Parámetro | Descripción |
---|---|
args
|
obligatorio listas para comprimir. |