Representa una transición de configuración a través de un borde de dependencia. Por ejemplo, si //package:foo depende de //package:bar con una transición de configuración, la configuración de //package:bar (y sus dependencias) será la configuración de //package:foo más los cambios especificados por la función de transición.
Miembros
transición
transition transition(*, implementation, inputs, outputs)
Ejemplo:
def _transition_impl(settings, attr):
# This transition just reads the current CPU value as a demonstration.
# A real transition could incorporate this into its followup logic.
current_cpu = settings["//command_line_option:cpu"]
return {"//command_line_option:compilation_mode": "dbg"}
build_in_debug_mode = transition(
implementation = _transition_impl,
inputs = ["//command_line_option:cpu"],
outputs = ["//command_line_option:compilation_mode"],
)Puedes averiguar más detalles aquí.
Parámetros
| Parámetro | Descripción |
|---|---|
implementation
|
callable;
required La función que implementa esta transición. Esta función siempre tiene dos parámetros: settings y attr. El parámetro settings es un diccionario cuyo conjunto de claves se define con el parámetro inputs. Por lo tanto, para cada parámetro de configuración de compilación --//foo=bar, si inputs contiene //foo, settings tendrá una entrada settings['//foo']='bar'.El parámetro Esta función debe devolver un |
inputs
|
sequence de strings;
obligatorio Lista de parámetros de configuración de compilación que puede leer esta transición. Esta se convierte en el conjunto de claves del parámetro de configuración del parámetro de la función de implementación. |
outputs
|
sequence de strings;
obligatorio Lista de parámetros de configuración de compilación que puede escribir esta transición. Debe ser un superconjunto del conjunto de claves del diccionario que devuelve esta transición. |
and_then
transition transition.and_then(transition)
Una composición se puede usar como regla o transición de atributo en cualquier lugar donde se puedan usar sus transiciones de componentes. Como máximo, una de las transiciones compuestas puede segmentar la configuración de ejecución (p.ej., config.exec). Cuando dos transiciones de la cadena dividen la configuración, el resultado tiene el producto cartesiano de sus divisiones; la clave de cada división combinada es la concatenación separada por comas de las claves de los componentes.
Parámetros
| Parámetro | Descripción |
|---|---|
transition
|
transition:
obligatorio Es la transición que se aplicará después de esta. |