Representa una transición de configuración en 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
transition
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 Es 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 mediante el parámetro de entradas. 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 mostrar un |
inputs
|
secuencia de cadenas;
obligatoria Es la lista de parámetros de configuración de compilación que puede leer esta transición. Este se convierte en el conjunto de claves del parámetro de configuración del parámetro de la función de implementación. |
outputs
|
secuencia de cadenas;
obligatoria Es la 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 muestra esta transición. |