attrs de rule(), aspect(), repository_rule() e tag_class(). Consulte a página "Regras" para saber mais 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(*, configurable=unbound, default=False, doc=None, mandatory=False)
ctx.attr correspondente será do tipo bool.
Parâmetros
| Parâmetro | Descrição |
|---|---|
configurable
|
bool ou sem vinculação. O padrão é unbound. Esse argumento só pode ser especificado para um atributo de uma macro simbólica. Se Para um atributo de uma regra ou aspecto, |
default
|
bool;
o padrão é FalseUm valor padrão a ser usado se nenhum valor for fornecido para esse atributo ao instanciar a regra. |
doc
|
string ou None;
o padrão é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará ser especificado explicitamente, mesmo que tenha um default.
|
int
Attribute attr.int(*, configurable=unbound, default=0, doc=None, mandatory=False, values=[])
ctx.attr correspondente será do tipo int.
Parâmetros
| Parâmetro | Descrição |
|---|---|
configurable
|
bool ou sem vinculação. O padrão é unbound. Esse argumento só pode ser especificado para um atributo de uma macro simbólica. Se Para um atributo de uma regra ou aspecto, |
default
|
int;
o padrão é 0Um valor padrão a ser usado se nenhum valor for fornecido para esse atributo ao instanciar a regra. |
doc
|
string ou None;
o padrão é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará 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, *, configurable=unbound, default=[], doc=None)
Parâmetros
| Parâmetro | Descrição |
|---|---|
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará ser especificado explicitamente, mesmo que tenha um default.
|
allow_empty
|
bool;
o padrão é TrueTrue se o atributo puder estar vazio. |
configurable
|
bool ou sem vinculação. O padrão é unbound. Esse argumento só pode ser especificado para um atributo de uma macro simbólica. Se Para um atributo de uma regra ou aspecto, |
default
|
sequence de ints;
o padrão é []Um valor padrão a ser usado se nenhum valor for fornecido para esse atributo ao instanciar a regra. |
doc
|
string ou None;
o padrão é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
o rótulo.
Attribute attr.label(*, configurable=unbound, default=None, materializer=None, doc=None, executable=False, allow_files=None, allow_single_file=None, mandatory=False, skip_validations=False, providers=[], for_dependency_resolution=unbound, 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 Label exclusivos. Se uma string for fornecida em vez de um Label, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (que pode ter sido renomeado), são resolvidas em relação ao pacote do destino instanciado.
No momento da análise (na função de implementação da regra), ao recuperar o valor do atributo de ctx.attr, os rótulos são substituídos pelos Targets correspondentes. Isso permite acessar os provedores das dependências do destino atual.
Além dos arquivos de origem comuns, esse tipo de atributo costuma ser usado 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 especifiquem o rótulo da ferramenta sempre que usarem a regra nos arquivos BUILD, é possível 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 particular a ele um nome que comece com um sublinhado. Consulte a página Regras para mais informações.
Parâmetros
| Parâmetro | Descrição |
|---|---|
configurable
|
bool ou sem vinculação. O padrão é unbound. Esse argumento só pode ser especificado para um atributo de uma macro simbólica. Se Para um atributo de uma regra ou aspecto, |
default
|
Label, string, LateBoundDefault, NativeComputedDefault, function ou None. O padrão é None. Um valor padrão a ser usado se nenhum valor for fornecido para esse atributo 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").
|
materializer
|
function;
o padrão é NoneExperimental. Esse parâmetro é experimental e pode mudar a qualquer momento. Não dependa dele. Ele pode ser ativado experimentalmente definindo --experimental_dormant_deps . Se definido, o atributo materializa dependências inativas do fechamento transitivo. O valor desse parâmetro precisa ser uma função que tenha acesso aos valores dos atributos da regra que não são dependências ou estão marcados como disponíveis para resolução de dependências. Ele precisa retornar uma dependência inativa ou uma lista delas, dependendo do tipo do atributo. |
doc
|
string ou None;
o padrão é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
executable
|
bool;
o padrão é FalseTrue 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, sequência de strings ou None. O padrão é None. Indica 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 é NoneIsso é semelhante a allow_files, com a restrição de que o rótulo precisa corresponder a um único Arquivo. Acesse em ctx.file.<attribute_name>.
|
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará ser especificado explicitamente, mesmo que tenha um default.
|
skip_validations
|
bool;
o padrão é FalseSe for "true", as ações de validação de dependências transitivas desse atributo não serão executadas. Essa é uma solução temporária e será removida no futuro. |
providers
|
sequence;
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 |
for_dependency_resolution
|
O padrão é unbound. Se essa opção estiver definida, o atributo estará disponível para materializadores. Somente as regras marcadas com a flag de mesmo nome podem ser referenciadas por esses atributos. |
allow_rules
|
sequência de strings ou None. O padrão é None. Quais destinos de regra (nome das classes) são permitidos. Esse recurso está descontinuado (mantido apenas para compatibilidade). Use provedores. |
cfg
|
O padrão é NoneConfiguraçã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 é obrigatório se executable for "True" 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 isso realmente ajude a esclarecer suas intenções.
|
aspects
|
sequence de Aspects;
o padrão é []Aspectos que devem 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, *, configurable=unbound, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, flags=[], mandatory=False, skip_validations=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 em vez de um Label, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (que pode ter sido renomeado), são resolvidas em relação ao pacote do destino instanciado.
No momento da análise (na função de implementação da regra), ao recuperar o valor do atributo de ctx.attr, os rótulos são substituídos pelos Targets correspondentes. Isso permite acessar os provedores das dependências do destino atual.
Parâmetros
| Parâmetro | Descrição |
|---|---|
allow_empty
|
bool;
o padrão é TrueTrue se o atributo puder estar vazio. |
configurable
|
bool ou sem vinculação. O padrão é unbound. Esse argumento só pode ser especificado para um atributo de uma macro simbólica. Se Para um atributo de uma regra ou aspecto, |
default
|
dict ou function. O padrão é {}. Um valor padrão a ser usado se nenhum valor for fornecido para esse atributo 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 é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
allow_files
|
bool, sequência de strings ou None. O padrão é None. Indica 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 destinos de regra (nome das classes) são permitidos. Esse recurso está descontinuado (mantido apenas para compatibilidade). Use provedores. |
providers
|
sequence;
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 |
for_dependency_resolution
|
O padrão é unbound. Se essa opção estiver definida, o atributo estará disponível para materializadores. Somente as regras marcadas com a flag de mesmo nome podem ser referenciadas por esses atributos. |
flags
|
sequência de strings; o padrão é []. Descontinuado, será removido. |
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará ser especificado explicitamente, mesmo que tenha um default.
|
skip_validations
|
bool;
o padrão é FalseSe for "true", as ações de validação de dependências transitivas desse atributo não serão executadas. Essa é uma solução temporária e será removida no futuro. |
cfg
|
O padrão é NoneConfiguraçã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
|
sequence de Aspects;
o padrão é []Aspectos que devem ser aplicados à dependência ou às dependências especificadas por esse atributo. |
label_list
Attribute attr.label_list(allow_empty=True, *, configurable=unbound, default=[], materializer=None, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, flags=[], mandatory=False, skip_validations=False, cfg=None, aspects=[])
Cria um esquema para um atributo de lista de rótulos. Esse é um atributo de dependência. O atributo ctx.attr correspondente será do tipo lista de Targets.
Esse atributo contém valores Label exclusivos. Se uma string for fornecida em vez de um Label, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (que pode ter sido renomeado), são resolvidas em relação ao pacote do destino instanciado.
No momento da análise (na função de implementação da regra), ao recuperar o valor do atributo de ctx.attr, os rótulos são substituídos pelos Targets correspondentes. Isso permite acessar os provedores das dependências do destino atual.
Parâmetros
| Parâmetro | Descrição |
|---|---|
allow_empty
|
bool;
o padrão é TrueTrue se o atributo puder estar vazio. |
configurable
|
bool ou sem vinculação. O padrão é unbound. Esse argumento só pode ser especificado para um atributo de uma macro simbólica. Se Para um atributo de uma regra ou aspecto, |
default
|
sequência de rótulos ou função;
o padrão é []Um valor padrão a ser usado se nenhum valor for fornecido para esse atributo 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"]).
|
materializer
|
function;
o padrão é NoneExperimental. Esse parâmetro é experimental e pode mudar a qualquer momento. Não dependa dele. Ele pode ser ativado experimentalmente definindo --experimental_dormant_deps . Se definido, o atributo materializa dependências inativas do fechamento transitivo. O valor desse parâmetro precisa ser uma função que tenha acesso aos valores dos atributos da regra que não são dependências ou estão marcados como disponíveis para resolução de dependências. Ele precisa retornar uma dependência inativa ou uma lista delas, dependendo do tipo do atributo. |
doc
|
string ou None;
o padrão é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
allow_files
|
bool, sequência de strings ou None. O padrão é None. Indica 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 destinos de regra (nome das classes) são permitidos. Esse recurso está descontinuado (mantido apenas para compatibilidade). Use provedores. |
providers
|
sequence;
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 |
for_dependency_resolution
|
O padrão é unbound. Se essa opção estiver definida, o atributo estará disponível para materializadores. Somente as regras marcadas com a flag de mesmo nome podem ser referenciadas por esses atributos. |
flags
|
sequência de strings; o padrão é []. Descontinuado, será removido. |
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará ser especificado explicitamente, mesmo que tenha um default.
|
skip_validations
|
bool;
o padrão é FalseSe for "true", as ações de validação de dependências transitivas desse atributo não serão executadas. Essa é uma solução temporária e será removida no futuro. |
cfg
|
O padrão é NoneConfiguraçã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
|
sequence de Aspects;
o padrão é []Aspectos que devem ser aplicados à dependência ou à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 em vez de um Label, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (que pode ter sido renomeado), são resolvidas em relação ao pacote do 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 é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará 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 Label exclusivos. Se uma string for fornecida em vez de um Label, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (que pode ter sido renomeado), são resolvidas em relação ao pacote do destino instanciado.
No momento da análise, o File correspondente pode ser recuperado usando ctx.outputs.
Parâmetros
| Parâmetro | Descrição |
|---|---|
allow_empty
|
bool;
o padrão é TrueTrue se o atributo puder estar vazio. |
doc
|
string ou None;
o padrão é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará ser especificado explicitamente, mesmo que tenha um default.
|
string
Attribute attr.string(*, configurable=unbound, default='', doc=None, mandatory=False, values=[])
Parâmetros
| Parâmetro | Descrição |
|---|---|
configurable
|
bool ou sem vinculação. O padrão é unbound. Esse argumento só pode ser especificado para um atributo de uma macro simbólica. Se Para um atributo de uma regra ou aspecto, |
default
|
string ou NativeComputedDefault;
o padrão é ''Um valor padrão a ser usado se nenhum valor for fornecido para esse atributo ao instanciar a regra. |
doc
|
string ou None;
o padrão é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará 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, *, configurable=unbound, default={}, doc=None, mandatory=False)
Parâmetros
| Parâmetro | Descrição |
|---|---|
allow_empty
|
bool;
o padrão é TrueTrue se o atributo puder estar vazio. |
configurable
|
bool ou sem vinculação. O padrão é unbound. Esse argumento só pode ser especificado para um atributo de uma macro simbólica. Se Para um atributo de uma regra ou aspecto, |
default
|
dict;
default is {}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 é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará ser especificado explicitamente, mesmo que tenha um default.
|
string_keyed_label_dict
Attribute attr.string_keyed_label_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, 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 Label exclusivos. Se uma string for fornecida em vez de um Label, ela será convertida usando o construtor de rótulos. As partes relativas do caminho do rótulo, incluindo o repositório (que pode ter sido renomeado), são resolvidas em relação ao pacote do destino instanciado.
No momento da análise (na função de implementação da regra), ao recuperar o valor do atributo de ctx.attr, os rótulos são substituídos pelos Targets correspondentes. Isso permite acessar os provedores das dependências do destino atual.
Parâmetros
| Parâmetro | Descrição |
|---|---|
allow_empty
|
bool;
o padrão é TrueTrue se o atributo puder estar vazio. |
configurable
|
bool ou sem vinculação. O padrão é unbound. Esse argumento só pode ser especificado para um atributo de uma macro simbólica. Se Para um atributo de uma regra ou aspecto, |
default
|
dict ou function. O padrão é {}. Um valor padrão a ser usado se nenhum valor for fornecido para esse atributo 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 é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
allow_files
|
bool, sequência de strings ou None. O padrão é None. Indica 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 destinos de regra (nome das classes) são permitidos. Esse recurso está descontinuado (mantido apenas para compatibilidade). Use provedores. |
providers
|
sequence;
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 |
for_dependency_resolution
|
O padrão é unbound. Se essa opção estiver definida, o atributo estará disponível para materializadores. Somente as regras marcadas com a flag de mesmo nome podem ser referenciadas por esses atributos. |
flags
|
sequência de strings; o padrão é []. Descontinuado, será removido. |
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará ser especificado explicitamente, mesmo que tenha um default.
|
cfg
|
O padrão é NoneConfiguraçã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
|
sequence de Aspects;
o padrão é []Aspectos que devem ser aplicados à dependência ou às dependências especificadas por esse atributo. |
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)
Parâmetros
| Parâmetro | Descrição |
|---|---|
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará ser especificado explicitamente, mesmo que tenha um default.
|
allow_empty
|
bool;
o padrão é TrueTrue se o atributo puder estar vazio. |
configurable
|
bool ou sem vinculação. O padrão é unbound. Esse argumento só pode ser especificado para um atributo de uma macro simbólica. Se Para um atributo de uma regra ou aspecto, |
default
|
sequência de strings ou NativeComputedDefault;
o padrão é []Um valor padrão a ser usado se nenhum valor for fornecido para esse atributo ao instanciar a regra. |
doc
|
string ou None;
o padrão é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, mandatory=False)
Parâmetros
| Parâmetro | Descrição |
|---|---|
allow_empty
|
bool;
o padrão é TrueTrue se o atributo puder estar vazio. |
configurable
|
bool ou sem vinculação. O padrão é unbound. Esse argumento só pode ser especificado para um atributo de uma macro simbólica. Se Para um atributo de uma regra ou aspecto, |
default
|
dict;
default is {}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 é NoneUma descrição do atributo que pode ser extraída por ferramentas de geração de documentação. |
mandatory
|
bool;
o padrão é FalseSe for "true", o valor precisará ser especificado explicitamente, mesmo que tenha um default.
|