Este é um módulo de nível superior para definir os esquemas de atributos de uma regra ou aspecto. Cada função retorna um objeto que representa o esquema de um único atributo. Esses objetos são usados como os valores do argumento de dicionário attrs
de rule()
e aspect()
.
Consulte a página "Regras" para mais informações sobre como definir e usar atributos.
Membros
- bool
- int
- int_list
- label
- label_keyed_string_dict
- label_list
- output
- output_list
- string
- string_dict
- string_keyed_label_dict
- string_list
- string_list_dict
bool
Attribute attr.bool(default=False, doc=None, mandatory=False)
ctx.attr
correspondente será do tipo bool
.
Parâmetros
Parâmetro | Descrição |
---|---|
default
|
default é False Um valor padrão a ser usado se nenhum valor para esse atributo for fornecido ao instanciar a regra. |
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
mandatory
|
O padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente, mesmo que tenha um default .
|
int
Attribute attr.int(default=0, doc=None, mandatory=False, values=[])
ctx.attr
correspondente será do tipo int
.
Parâmetros
Parâmetro | Descrição |
---|---|
default
|
default é 0 Um valor padrão a ser usado se nenhum valor para esse atributo for fornecido ao instanciar a regra. |
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
mandatory
|
O padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente, mesmo que tenha um default .
|
values
|
sequência de ints;
o padrão é [] A lista de valores permitidos para o atributo. Um erro será gerado se qualquer outro valor for fornecido. |
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc=None)
Parâmetros
Parâmetro | Descrição |
---|---|
mandatory
|
O padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente, mesmo que tenha um default .
|
allow_empty
|
o padrão é True Verdadeiro se o atributo puder estar vazio. |
default
|
sequência de ints. O padrão é [] Um valor padrão a ser usado se nenhum valor para esse atributo for fornecido ao instanciar a regra. |
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
o rótulo.
Attribute attr.label(default=None, doc=None, executable=False, allow_files=None, allow_single_file=None, mandatory=False, providers=[], allow_rules=None, cfg=None, aspects=[], flags=[])
Cria um esquema para um atributo de rótulo. Esse é um atributo de dependência.
Esse atributo contém valores exclusivos de Label
. Se uma string for fornecida no lugar de um Label
, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (possivelmente renomeado), são resolvidas em relação ao pacote de destino instanciado.
No momento da análise (na função de implementação da regra), ao extrair o valor do atributo de ctx.attr
, os rótulos são substituídos pelos Target
s correspondentes. Isso permite acessar os provedores das dependências do destino atual.
Além dos arquivos de origem comuns, esse tipo de atributo é usado com frequência para se referir a uma ferramenta, por exemplo, um compilador. Essas ferramentas são consideradas dependências, assim como os arquivos de origem. Para evitar que os usuários precisem especificar o rótulo da ferramenta sempre que usarem a regra nos arquivos BUILD, você pode codificar o rótulo de uma ferramenta canônica como o valor default
desse atributo. Se você também quiser impedir que os usuários substituam esse padrão, torne o atributo privado atribuindo um nome que comece com um sublinhado. Consulte a página Regras para mais informações.
Parâmetros
Parâmetro | Descrição |
---|---|
default
|
Label; ou string; ou LateBoundDefault; ou NativeComputedDefault; ou function; ou None .
O padrão é None Um valor padrão a ser usado se nenhum valor desse atributo for fornecido ao instanciar a regra. Use uma string ou a função Label para especificar um valor padrão, por exemplo, attr.label(default = "//a:b") .
|
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
executable
|
O padrão é False Verdadeiro se a dependência precisar ser executável. Isso significa que o rótulo precisa se referir a um arquivo executável ou a uma regra que gere um arquivo executável. Acesse o marcador com ctx.executable.<attribute_name> .
|
allow_files
|
bool ou sequência de strings ou None .
O padrão é None . Define se os destinos File são permitidos. Pode ser True , False (padrão) ou uma lista de extensões de arquivo permitidas (por exemplo, [".cc", ".cpp"] ).
|
allow_single_file
|
O padrão é None . Isso é semelhante a allow_files , com a restrição de que o rótulo precisa corresponder a um único arquivo. Acesse-o em ctx.file.<attribute_name> .
|
mandatory
|
O padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente, mesmo que tenha um default .
|
providers
|
o padrão é [] Os provedores que precisam ser fornecidos por qualquer dependência que apareça nesse atributo. O formato desse argumento é uma lista de listas de provedores: objetos |
allow_rules
|
Sequência de strings ou None .
O padrão é None . Quais regras de destino (nome das classes) são permitidas. Esse recurso foi descontinuado (mantido apenas para compatibilidade). Use provedores. |
cfg
|
O padrão é None Configuração do atributo. Pode ser "exec" , que indica que a dependência foi criada para o execution platform , ou "target" , que indica que a dependência foi criada para o target platform . Um exemplo típico da diferença é ao criar apps para dispositivos móveis, em que o target platform é Android ou iOS , enquanto o execution platform é Linux , macOS ou Windows . Esse parâmetro será necessário se executable for verdadeiro para evitar a criação acidental de ferramentas de host na configuração de destino. "target" não tem efeito semântico. Portanto, não o defina quando executable for "false", a menos que ele realmente ajude a esclarecer suas intenções.
|
aspects
|
sequência de Aspectos.
O padrão é [] Aspectos que precisam ser aplicados à dependência ou às dependências especificadas por esse atributo. |
flags
|
Sequência de strings.
O padrão é [] . Descontinuado, será removido. |
label_keyed_string_dict
Attribute attr.label_keyed_string_dict(allow_empty=True, *, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
Cria um esquema para um atributo que contém um dicionário, em que as chaves são rótulos e os valores são strings. Esse é um atributo de dependência.
Esse atributo contém valores Label
exclusivos. Se uma string for fornecida no lugar de um Label
, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (possivelmente renomeado), são resolvidas em relação ao pacote de destino instanciado.
No momento da análise (na função de implementação da regra), ao extrair o valor do atributo de ctx.attr
, os rótulos são substituídos pelos Target
s correspondentes. Isso permite que você acesse os provedores das dependências do destino atual.
Parâmetros
Parâmetro | Descrição |
---|---|
allow_empty
|
O padrão é True Verdadeiro se o atributo pode estar vazio. |
default
|
dict; ou function;
o padrão é {} Um valor padrão a ser usado se nenhum valor desse atributo for fornecido ao instanciar a regra.Use strings ou a função Label para especificar valores padrão, por exemplo, attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}) .
|
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
allow_files
|
bool ou sequência de strings ou None .
O padrão é None . Define se os destinos File são permitidos. Pode ser True , False (padrão) ou uma lista de extensões de arquivo permitidas (por exemplo, [".cc", ".cpp"] ).
|
allow_rules
|
Sequência de strings ou None .
O padrão é None . Quais regras de destino (nome das classes) são permitidas. Esse recurso foi descontinuado (mantido apenas para compatibilidade). Use provedores. |
providers
|
o padrão é [] Os provedores que precisam ser fornecidos por qualquer dependência que apareça nesse atributo. O formato desse argumento é uma lista de listas de provedores: objetos |
flags
|
Sequência de strings.
O padrão é [] . Descontinuado, será removido. |
mandatory
|
o padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente (mesmo que tenha um default ).
|
cfg
|
O padrão é None Configuração do atributo. Pode ser "exec" , que indica que a dependência foi criada para o execution platform , ou "target" , que indica que a dependência foi criada para o target platform . Um exemplo típico da diferença é ao criar apps para dispositivos móveis, em que o target platform é Android ou iOS , enquanto o execution platform é Linux , macOS ou Windows .
|
aspects
|
sequência de Aspectos.
O padrão é [] Aspectos que precisam ser aplicados à dependência ou às dependências especificadas por esse atributo. |
label_list
Attribute attr.label_list(allow_empty=True, *, default=[], doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
Cria um esquema para um atributo de lista de marcadores. Esse é um atributo de dependência. O atributo ctx.attr
correspondente será do tipo lista de Target
s.
Esse atributo contém valores Label
exclusivos. Se uma string for fornecida no lugar de um Label
, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (possivelmente renomeado), são resolvidas em relação ao pacote de destino instanciado.
No momento da análise (na função de implementação da regra), ao extrair o valor do atributo de ctx.attr
, os rótulos são substituídos pelos Target
s correspondentes. Isso permite acessar os provedores das dependências do destino atual.
Parâmetros
Parâmetro | Descrição |
---|---|
allow_empty
|
O padrão é True Verdadeiro se o atributo pode estar vazio. |
default
|
Sequência de rótulos ou função;
O padrão é [] Um valor padrão a ser usado se nenhum valor para esse atributo for fornecido ao instanciar a regra. Use strings ou a função Label para especificar valores padrão, por exemplo, attr.label_list(default = ["//a:b", "//a:c"]) .
|
doc
|
string; ou None ;
o padrão é None .Uma descrição do atributo que pode ser extraída por ferramentas que geram documentação. |
allow_files
|
bool ou sequência de strings ou None .
O padrão é None . Define se os destinos File são permitidos. Pode ser True , False (padrão) ou uma lista de extensões de arquivo permitidas (por exemplo, [".cc", ".cpp"] ).
|
allow_rules
|
Sequência de strings ou None .
O padrão é None . Quais regras de destino (nome das classes) são permitidas. Isso foi descontinuado (mantido apenas para compatibilidade). Em vez disso, use provedores. |
providers
|
o padrão é [] Os provedores que precisam ser fornecidos por qualquer dependência que apareça nesse atributo. O formato desse argumento é uma lista de listas de provedores: objetos |
flags
|
Sequência de strings.
O padrão é [] . Descontinuado, será removido. |
mandatory
|
O padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente, mesmo que tenha um default .
|
cfg
|
O padrão é None Configuração do atributo. Pode ser "exec" , que indica que a dependência foi criada para o execution platform , ou "target" , que indica que a dependência foi criada para o target platform . Um exemplo típico da diferença é ao criar apps para dispositivos móveis, em que o target platform é Android ou iOS , enquanto o execution platform é Linux , macOS ou Windows .
|
aspects
|
Sequência de aspectos:
o padrão é [] . Aspectos que precisam ser aplicados às dependências especificadas por esse atributo. |
output
Attribute attr.output(doc=None, mandatory=False)
Cria um esquema para um atributo de saída (rótulo).
Esse atributo contém valores Label
exclusivos. Se uma string for fornecida no lugar de um Label
, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (possivelmente renomeado), são resolvidas em relação ao pacote de destino instanciado.
No momento da análise, o File
correspondente pode ser recuperado usando ctx.outputs
.
Parâmetros
Parâmetro | Descrição |
---|---|
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
mandatory
|
o padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente (mesmo que tenha um default ).
|
output_list
Attribute attr.output_list(allow_empty=True, *, doc=None, mandatory=False)
Esse atributo contém valores exclusivos de Label
. Se uma string for fornecida no lugar de um Label
, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (possivelmente renomeado), são resolvidas em relação ao pacote de destino instanciado.
No momento da análise, o File
correspondente pode ser recuperado usando ctx.outputs
.
Parâmetros
Parâmetro | Descrição |
---|---|
allow_empty
|
O padrão é True Verdadeiro se o atributo pode estar vazio. |
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
mandatory
|
O padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente, mesmo que tenha um default .
|
string
Attribute attr.string(default='', doc=None, mandatory=False, values=[])
Parâmetros
Parâmetro | Descrição |
---|---|
default
|
string ou NativeComputedDefault;
o padrão é '' Um valor padrão a ser usado se nenhum valor para esse atributo for fornecido ao instanciar a regra. |
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
mandatory
|
O padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente, mesmo que tenha um default .
|
values
|
Sequência de strings.
O padrão é [] . A lista de valores permitidos para o atributo. Um erro será gerado se qualquer outro valor for fornecido. |
string_dict
Attribute attr.string_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)
Parâmetros
Parâmetro | Descrição |
---|---|
allow_empty
|
O padrão é True Verdadeiro se o atributo pode estar vazio. |
default
|
o padrão é {} Um valor padrão a ser usado se nenhum valor para esse atributo for fornecido ao instanciar a regra. |
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
mandatory
|
O padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente, mesmo que tenha um default .
|
string_keyed_label_dict
Attribute attr.string_keyed_label_dict(allow_empty=True, *, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
Cria um esquema para um atributo cujo valor é um dicionário em que as chaves são strings e os valores são rótulos. Esse é um atributo de dependência.
Esse atributo contém valores exclusivos de Label
. Se uma string for fornecida no lugar de um Label
, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (possivelmente renomeado), são resolvidas em relação ao pacote de destino instanciado.
No momento da análise (dentro da função de implementação da regra), ao recuperar o valor do atributo de ctx.attr
, os rótulos são substituídos pelos Target
s correspondentes. Isso permite acessar os provedores das dependências do destino atual.
Parâmetros
Parâmetro | Descrição |
---|---|
allow_empty
|
O padrão é True Verdadeiro se o atributo pode estar vazio. |
default
|
dict; ou function;
o padrão é {} Um valor padrão a ser usado se nenhum valor desse atributo for fornecido ao instanciar a regra.Use strings ou a função Label para especificar valores padrão, por exemplo, attr.string_keyed_label_dict(default = {"foo": "//a:b", "bar": "//a:c"}) .
|
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
allow_files
|
bool ou sequência de strings ou None .
O padrão é None . Define se os destinos File são permitidos. Pode ser True , False (padrão) ou uma lista de extensões de arquivo permitidas (por exemplo, [".cc", ".cpp"] ).
|
allow_rules
|
Sequência de strings ou None .
O padrão é None . Quais regras de destino (nome das classes) são permitidas. Isso foi descontinuado (mantido apenas para compatibilidade). Em vez disso, use provedores. |
providers
|
o padrão é [] Os provedores que precisam ser fornecidos por qualquer dependência que apareça nesse atributo. O formato desse argumento é uma lista de listas de provedores: objetos |
flags
|
Sequência de strings.
O padrão é [] . Descontinuado, será removido. |
mandatory
|
O padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente, mesmo que tenha um default .
|
cfg
|
o padrão é None Configuração do atributo. Pode ser "exec" , que indica que a dependência foi criada para o execution platform , ou "target" , que indica que a dependência foi criada para o target platform . Um exemplo típico da diferença é ao criar apps para dispositivos móveis, em que o target platform é Android ou iOS , enquanto o execution platform é Linux , macOS ou Windows .
|
aspects
|
sequência de Aspectos.
O padrão é [] Aspectos que precisam ser aplicados à dependência ou às dependências especificadas por esse atributo. |
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc=None)
Parâmetros
Parâmetro | Descrição |
---|---|
mandatory
|
O padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente, mesmo que tenha um default .
|
allow_empty
|
o padrão é True Verdadeiro se o atributo puder estar vazio. |
default
|
sequência de strings ou NativeComputedDefault;
o padrão é [] Um valor padrão a ser usado se nenhum valor para esse atributo for fornecido ao instanciar a regra. |
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)
Parâmetros
Parâmetro | Descrição |
---|---|
allow_empty
|
O padrão é True Verdadeiro se o atributo pode estar vazio. |
default
|
default é {} Um valor padrão a ser usado se nenhum valor para esse atributo for fornecido ao instanciar a regra. |
doc
|
string ou None ;
o padrão é None Uma descrição do atributo que pode ser extraído por ferramentas de geração de documentação. |
mandatory
|
o padrão é False Se verdadeiro, o valor precisa ser especificado explicitamente (mesmo que tenha um default ).
|