attrs
de rule()
y aspect()
.Consulta la página Reglas para obtener más información sobre la definición y el uso de atributos.
Miembros
- bool
- int
- int_list
- label
- label_keyed_string_dict
- label_list
- Resultado
- output_list
- string
- string_dict
- string_list
- string_list_dict
bool
Attribute attr.bool(default=False, doc='', mandatory=False)Crea un esquema para un atributo booleano.
Parámetros
Parámetro | Descripción |
---|---|
default
|
default = False Es un valor predeterminado que se usa si no se proporciona ningún valor para este atributo al crear una instancia de la regla. |
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|
int
Attribute attr.int(default=0, doc='', mandatory=False, values=[])Crea un esquema para un atributo de número entero. El valor debe estar dentro del rango de 32 bits con signo.
Parámetros
Parámetro | Descripción |
---|---|
default
|
default = 0 Es un valor predeterminado que se usa si no se proporciona ningún valor para este atributo cuando se crea una instancia de la regla. |
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|
values
|
sequence of ints ;
default = []La lista de valores permitidos para el atributo. Se genera un error si se proporciona otro valor. |
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc='')Crea un esquema para un atributo de lista de números enteros. Cada elemento debe estar dentro del rango de 32 bits con firma.
Parámetros
Parámetro | Descripción |
---|---|
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|
allow_empty
|
default = True Es verdadero si el atributo puede estar vacío. |
default
|
sequence of ints ;
predeterminado = []Valor predeterminado para usar si no se proporciona ningún valor para este atributo cuando se crea una instancia de la regla. |
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
etiqueta
Attribute attr.label(default=None, doc='', executable=False, allow_files=None, allow_single_file=None, mandatory=False, providers=[], allow_rules=None, cfg=None, aspects=[])
Crea un esquema para un atributo de etiqueta. Este es un atributo de dependencia.
Este atributo contiene valores Label
únicos. Si se proporciona una cadena en lugar de un Label
, se convertirá mediante el constructor de etiquetas. Las partes relativas de la ruta de acceso de la etiqueta, incluido el repositorio (posiblemente con nombre cambiado), se resuelven con respecto al paquete del destino cuya instancia se creó.
En el momento del análisis (dentro de la función de implementación de la regla), cuando se recupera el valor del atributo de ctx.attr
, las etiquetas se reemplazan por los Target
correspondientes. Esto te permite acceder a los proveedores de las dependencias del destino actual.
Además de los archivos fuente comunes, este tipo de atributo suele usarse para hacer referencia a una herramienta (por ejemplo, un compilador). Estas herramientas se consideran dependencias, al igual que los archivos fuente. Para evitar que los usuarios tengan que especificar la etiqueta de la herramienta cada vez que usen la regla en sus archivos BUILD, puedes codificar la etiqueta de una herramienta canónica como el valor default
de este atributo. Si quieres impedir que los usuarios anulen este valor predeterminado, puedes hacer que el atributo sea privado. Para ello, asígnale un nombre que comience con un guion bajo. Consulte la página Reglas para obtener más información.
Parámetros
Parámetro | Descripción |
---|---|
default
|
Label; or string; or LateBoundDefault; or NativeComputedDefault; or function; or None ;
predeterminado = NingunoEs un valor predeterminado para usar si no se proporciona ningún valor para este atributo cuando se crea una instancia de la regla.Usa una cadena o la función Label para especificar un valor predeterminado, por ejemplo, attr.label(default = "//a:b") .
|
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
executable
|
default = False Es verdadero si la dependencia tiene que ser ejecutable. Esto significa que la etiqueta debe hacer referencia a un archivo ejecutable o a una regla que genere un archivo ejecutable. Accede a la etiqueta con ctx.executable.<attribute_name> .
|
allow_files
|
bool; or sequence of strings; or None ;
predeterminado = NingunoIndica si se permiten destinos File . Puede ser True , False (valor predeterminado) o una lista de extensiones de archivo permitidas (por ejemplo, [".cc", ".cpp"] ).
|
allow_single_file
|
default = None Es similar a allow_files , con la restricción de que la etiqueta debe corresponder a un solo File. Accede a él a través de ctx.file.<attribute_name> .
|
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|
providers
|
default = [] Son los proveedores que debe proporcionar cualquier dependencia que aparezca en este atributo. El formato de este argumento es una lista de listas de proveedores: objetos |
allow_rules
|
sequence of strings; or None ;
default = NoneLas reglas de destino (nombre de las clases) están permitidas. Esta función dejó de estar disponible (se mantiene solo por motivos de compatibilidad). En su lugar, usa proveedores. |
cfg
|
default = None Es la configuración del atributo. Puede ser "exec" , que indica que la dependencia se compila para execution platform , o "target" , que indica que la dependencia se compila para target platform . Un ejemplo típico de la diferencia es cuando se compilan apps para dispositivos móviles, donde target platform es Android o iOS , mientras que execution platform es Linux , macOS o Windows . Este parámetro es obligatorio si el valor de executable es verdadero para evitar la compilación accidental de herramientas del host en la configuración objetivo. "target" no tiene efecto semántico, por lo que no lo configures cuando executable sea falso, a menos que realmente ayude a aclarar tus intenciones.
|
aspects
|
sequence of Aspects ;
default = []Aspectos que se deben aplicar a la dependencia o las dependencias especificadas por este atributo. |
label_keyed_string_dict
Attribute attr.label_keyed_string_dict(allow_empty=True, *, default={}, doc='', allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
Crea un esquema para un atributo que contiene un diccionario, en el que las claves son etiquetas y los valores son cadenas. Este es un atributo de dependencia.
Este atributo contiene valores Label
únicos. Si se proporciona una cadena en lugar de un Label
, se convertirá mediante el constructor de etiquetas. Las partes relativas de la ruta de acceso de la etiqueta, incluido el repositorio (posiblemente con nombre cambiado), se resuelven con respecto al paquete del destino cuya instancia se creó.
En el momento del análisis (dentro de la función de implementación de la regla), cuando se recupera el valor del atributo de ctx.attr
, las etiquetas se reemplazan por los Target
correspondientes. Esto te permite acceder a los proveedores de las dependencias del destino actual.
Parámetros
Parámetro | Descripción |
---|---|
allow_empty
|
default = True Es verdadero si el atributo puede estar vacío. |
default
|
dict; or function ; valor predeterminado = {}Valor predeterminado que se debe usar si no se proporciona ningún valor para este atributo cuando se crea una instancia de la regla.Usa cadenas o la función Label para especificar valores predeterminados; por ejemplo, attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}) .
|
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
allow_files
|
bool; or sequence of strings; or None ;
predeterminado = NingunoIndica si se permiten destinos File . Puede ser True , False (valor predeterminado) o una lista de extensiones de archivo permitidas (por ejemplo, [".cc", ".cpp"] ).
|
allow_rules
|
sequence of strings; or None ;
default = NoneLas reglas de destino (nombre de las clases) están permitidas. Esta función dejó de estar disponible (se mantiene solo por motivos de compatibilidad). En su lugar, usa proveedores. |
providers
|
default = [] Son los proveedores que debe proporcionar cualquier dependencia que aparezca en este atributo. El formato de este argumento es una lista de listas de proveedores: objetos |
flags
|
sequence of strings ;
default = []Obsoleto, se quitará. |
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|
cfg
|
default = None Es la configuración del atributo. Puede ser "exec" , que indica que la dependencia se compila para execution platform , o "target" , que indica que la dependencia se compila para target platform . Un ejemplo típico de la diferencia es cuando se compilan apps para dispositivos móviles, donde target platform es Android o iOS , mientras que execution platform es Linux , macOS o Windows .
|
aspects
|
sequence of Aspects ;
default = []Aspectos que se deben aplicar a la dependencia o las dependencias especificadas por este atributo. |
label_list
Attribute attr.label_list(allow_empty=True, *, default=[], doc='', allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
Crea un esquema para un atributo de lista de etiquetas. Este es un atributo de dependencia.
Este atributo contiene valores Label
únicos. Si se proporciona una cadena en lugar de un Label
, se convertirá mediante el constructor de etiquetas. Las partes relativas de la ruta de acceso de la etiqueta, incluido el repositorio (posiblemente con nombre cambiado), se resuelven con respecto al paquete del destino cuya instancia se creó.
En el momento del análisis (dentro de la función de implementación de la regla), cuando se recupera el valor del atributo de ctx.attr
, las etiquetas se reemplazan por los Target
correspondientes. Esto te permite acceder a los proveedores de las dependencias del destino actual.
Parámetros
Parámetro | Descripción |
---|---|
allow_empty
|
default = True Es verdadero si el atributo puede estar vacío. |
default
|
sequence of Labels; or function ;
predeterminado = []Valor predeterminado que se debe usar si no se proporciona ningún valor para este atributo cuando se crea una instancia de la regla.Usa cadenas o la función Label para especificar valores predeterminados, por ejemplo, attr.label_list(default = ["//a:b", "//a:c"]) .
|
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
allow_files
|
bool; or sequence of strings; or None ;
predeterminado = NingunoIndica si se permiten destinos File . Puede ser True , False (valor predeterminado) o una lista de extensiones de archivo permitidas (por ejemplo, [".cc", ".cpp"] ).
|
allow_rules
|
sequence of strings; or None ;
default = NoneLas reglas de destino (nombre de las clases) están permitidas. Esta función dejó de estar disponible (se mantiene solo por motivos de compatibilidad). En su lugar, usa proveedores. |
providers
|
default = [] Son los proveedores que debe proporcionar cualquier dependencia que aparezca en este atributo. El formato de este argumento es una lista de listas de proveedores: objetos |
flags
|
sequence of strings ;
default = []Obsoleto, se quitará. |
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|
cfg
|
default = None Es la configuración del atributo. Puede ser "exec" , que indica que la dependencia se compila para execution platform , o "target" , que indica que la dependencia se compila para target platform . Un ejemplo típico de la diferencia es cuando se compilan apps para dispositivos móviles, donde target platform es Android o iOS , mientras que execution platform es Linux , macOS o Windows .
|
aspects
|
sequence of Aspects ;
default = []Aspectos que se deben aplicar a la dependencia o las dependencias especificadas por este atributo. |
salida
Attribute attr.output(doc='', mandatory=False)
Crea un esquema para un atributo de salida (etiqueta).
Este atributo contiene valores Label
únicos. Si se proporciona una cadena en lugar de un Label
, se convertirá mediante el constructor de etiquetas. Las partes relativas de la ruta de acceso de la etiqueta, incluido el repositorio (posiblemente con nombre cambiado), se resuelven con respecto al paquete del destino cuya instancia se creó.
En el momento del análisis, el File
correspondiente se puede recuperar con ctx.outputs
.
Parámetros
Parámetro | Descripción |
---|---|
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|
output_list
Attribute attr.output_list(allow_empty=True, *, doc='', mandatory=False)Crea un esquema para un atributo de lista de resultados.
Este atributo contiene valores Label
únicos. Si se proporciona una cadena en lugar de un Label
, se convertirá mediante el constructor de etiquetas. Las partes relativas de la ruta de acceso de la etiqueta, incluido el repositorio (posiblemente con nombre cambiado), se resuelven con respecto al paquete del destino cuya instancia se creó.
En el momento del análisis, el File
correspondiente se puede recuperar con ctx.outputs
.
Parámetros
Parámetro | Descripción |
---|---|
allow_empty
|
default = True Es verdadero si el atributo puede estar vacío. |
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|
cadena
Attribute attr.string(default='', doc='', mandatory=False, values=[])Crea un esquema para un atributo de string.
Parámetros
Parámetro | Descripción |
---|---|
default
|
string; or NativeComputedDefault ;
default = ''Es un valor predeterminado para usar si no se proporciona ningún valor para este atributo cuando se crea una instancia de la regla. |
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|
values
|
sequence of strings ;
default = []La lista de valores permitidos para el atributo. Se genera un error si se proporciona otro valor. |
string_dict
Attribute attr.string_dict(allow_empty=True, *, default={}, doc='', mandatory=False)Crea un esquema para un atributo que contiene un diccionario, en el que las claves y los valores son cadenas.
Parámetros
Parámetro | Descripción |
---|---|
allow_empty
|
default = True Es verdadero si el atributo puede estar vacío. |
default
|
default = {} Valor predeterminado que se debe usar si no se proporciona ningún valor para este atributo al crear una instancia de la regla. |
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc='')Crea un esquema para un atributo de lista de strings.
Parámetros
Parámetro | Descripción |
---|---|
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|
allow_empty
|
default = True Es verdadero si el atributo puede estar vacío. |
default
|
sequence of strings; or NativeComputedDefault ;
predeterminado = []Valor predeterminado para usar si no se proporciona ningún valor para este atributo cuando se crea una instancia de la regla. |
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc='', mandatory=False)Crea un esquema para un atributo que contiene un diccionario, donde las claves son cadenas y los valores son listas de cadenas.
Parámetros
Parámetro | Descripción |
---|---|
allow_empty
|
default = True Es verdadero si el atributo puede estar vacío. |
default
|
default = {} Valor predeterminado que se debe usar si no se proporciona ningún valor para este atributo al crear una instancia de la regla. |
doc
|
default = '' Es una descripción del atributo que se puede extraer con las herramientas de generación de documentación. |
mandatory
|
default = False Si es verdadero, el valor debe especificarse de forma explícita (incluso si tiene default ).
|