Membros
- todos
- analysis_test_transition
- qualquer um
- archive_override
- aspect
- bazel_dep
- vincular
- bool
- configuration_field
- depset (link em inglês)
- dict
- dir
- enumerar
- exec_group
- falha
- float
- getattr
- git_override
- hasattr
- hash
- int
- len
- list
- local_path_override
- max
- min
- module
- module_extension
- multiple_version_override
- provedor
- Intervalo
- register_execution_platforms()
- register_execution_platforms(dev_dependency)
- register_toolchains()
- register_toolchains(dev_dependency)
- repository_rule
- repr
- revertido
- regra
- selecionar
- single_version_override
- ordenado
- str
- tag_class
- tupla
- type
- use_extension
- use_repo
- visibilidade
- workspace
- zip
todas
bool all(elements)
all(["hello", 3, True]) == True all([-1, 0, 1]) == False
Parâmetros
Parâmetro | Descrição |
---|---|
elements
|
required Uma string ou uma coleção de elementos. |
analysis_test_transition
transition analysis_test_transition(settings)
Cria uma transição de configuração a ser aplicada às dependências de uma regra de teste de análise. Essa transição só pode ser aplicada em atributos de regras com analysis_test = True
. Essas regras são restritas em recursos (por exemplo, o tamanho da árvore de dependência é limitado), portanto, as transições criadas usando essa função são limitadas no escopo potencial em comparação com as transições criadas usando transition.
Essa função foi projetada principalmente para facilitar a biblioteca principal do Analysis Test Framework. Consulte a documentação (ou a implementação) para conferir as práticas recomendadas.
Parâmetros
Parâmetro | Descrição |
---|---|
settings
|
required Um dicionário com informações sobre as configurações que precisam ser definidas por essa transição. As chaves são rótulos de configurações de build e os valores são os novos valores pós-transição. Todas as outras configurações permanecem inalteradas. Use isso para declarar configurações específicas que um teste de análise precisa definir para ser aprovado. |
qualquer um
bool any(elements)
any([-1, 0, 1]) == True any([False, 0, ""]) == False
Parâmetros
Parâmetro | Descrição |
---|---|
elements
|
required Uma string ou uma coleção de elementos. |
archive_override
None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)
Parâmetros
Parâmetro | Descrição |
---|---|
module_name
|
required O nome da dependência do módulo do Bazel para aplicar essa substituição. |
urls
|
string; or Iterable of strings ;
obrigatórioOs URLs do arquivo. Podem ser URLs http(s):// ou file://. |
integrity
|
default = '' A soma de verificação esperada do arquivo de arquivamento, no formato de integridade da sub-recurso. |
strip_prefix
|
default = '' Um prefixo de diretório para remover dos arquivos extraídos. |
patches
|
Iterable of strings ;
default = []Uma lista de identificadores que apontam para arquivos de patch a serem aplicados a este módulo. Os arquivos de patch precisam existir na árvore de origem do projeto de nível superior. Elas são aplicadas na ordem da lista. |
patch_cmds
|
Iterable of strings ;
default = []Sequência de comandos Bash a serem aplicados no Linux/Macos após a aplicação dos patches. |
patch_strip
|
default = 0 É o mesmo que o argumento --strip do patch Unix. |
aspecto
Aspect aspect(implementation, attr_aspects=[], attrs=None, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None)
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
required Uma função Starlark que implementa esse aspecto, com exatamente dois parâmetros: Target (o destino a que o aspecto é aplicado) e ctx (o contexto da regra em que o destino é criado). Os atributos do destino estão disponíveis no campo ctx.rule . Essa função é avaliada durante a fase de análise para cada aplicação de um aspecto a um destino.
|
attr_aspects
|
sequence of strings ;
default = []Lista de nomes de atributos. O aspecto se propaga com as dependências especificadas nos atributos de um destino com esses nomes. Os valores comuns incluem deps e exports . A lista também pode conter uma única string "*" para propagar todas as dependências de um destino.
|
attrs
|
dict; or None ;
default = NoneUm dicionário que declara todos os atributos do aspecto. Ele mapeia um nome de atributo para um objeto de atributo, como "attr.label" ou "attr.string" (consulte o módulo attr). Os atributos de aspecto estão disponíveis para a função de implementação como campos do parâmetro ctx . Os atributos implícitos que começam com Os atributos explícitos precisam ter o tipo |
required_providers
|
default = [] Esse atributo permite que o aspecto limite a propagação apenas para os destinos com regras que anunciam os provedores obrigatórios. O valor precisa ser uma lista que contenha provedores individuais ou listas de provedores, mas não ambos. Por exemplo, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] é um valor válido, enquanto [FooInfo, BarInfo, [BazInfo, QuxInfo]] não é.Uma lista de provedores não aninhada é convertida automaticamente em uma lista que contém uma lista de provedores. Ou seja, Para que algumas regras (por exemplo, |
required_aspect_providers
|
default = [] Esse atributo permite que esse aspecto inspecione outros aspectos. O valor precisa ser uma lista que contenha provedores individuais ou listas de provedores, mas não ambos. Por exemplo, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] é um valor válido, enquanto [FooInfo, BarInfo, [BazInfo, QuxInfo]] não é.Uma lista de provedores não aninhada é convertida automaticamente em uma lista que contém uma lista de provedores. Ou seja, Para tornar outro aspecto (por exemplo, |
provides
|
default = [] Uma lista de provedores que a função de implementação precisa retornar. É um erro se a função de implementação omitir qualquer um dos tipos de provedor listados aqui do valor de retorno. No entanto, a função de implementação pode retornar outros provedores não listados aqui. Cada elemento da lista é um objeto |
requires
|
sequence of Aspects ;
default = []Lista de aspectos necessários para serem propagados antes deste aspecto. |
fragments
|
sequence of strings ;
default = []Lista de nomes de fragmentos de configuração que o aspecto exige na configuração de destino. |
host_fragments
|
sequence of strings ;
default = []Lista de nomes de fragmentos de configuração que o aspecto exige na configuração do host. |
toolchains
|
sequence ;
default = []Se definido, o conjunto de toolchains necessário para essa regra. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. As cadeias de ferramentas serão encontradas verificando a plataforma atual e fornecidas à implementação da regra por meio de ctx.toolchain .
|
incompatible_use_toolchain_transition
|
default = False Deprecated, this is no longer in use and should be removed. |
doc
|
default = '' Uma descrição do aspecto que pode ser extraído por ferramentas de geração de documentação. |
apply_to_generating_rules
|
padrão = False Se verdadeiro, o aspecto será aplicado à regra geradora do arquivo de saída quando aplicado a um arquivo de saída. Por exemplo, suponha que um aspecto se propague transitivamente pelo atributo "deps" e seja aplicado ao destino "alpha". Suponha que "alpha" tenha "deps = [':beta_output']", em que "beta_output" é uma saída declarada de um destino "beta". Suponha que "beta" tenha um destino "charlie" como um dos "deps". Se "apply_to_generating_rules=True" para o aspecto, ele vai se propagar por "alpha", "beta" e "charlie". Se for falso, o aspecto vai se propagar apenas para "alpha". O padrão é "falso". |
exec_compatible_with
|
sequence of strings ;
default = []Uma lista de restrições na plataforma de execução que se aplicam a todas as instâncias desse aspecto. |
exec_groups
|
dict; or None ;
padrão = NoneDicionário do nome do grupo de execução (string) para exec_group s. Se definido, permite que os aspectos executem ações em várias plataformas de execução em uma única instância. Consulte a documentação sobre grupos de execução para mais informações.
|
bazel_dep
None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)
Parâmetros
Parâmetro | Descrição |
---|---|
name
|
required O nome do módulo a ser adicionado como dependência direta. |
version
|
default = '' A versão do módulo a ser adicionada como uma dependência direta. |
max_compatibility_level
|
default = -1 O compatibility_level máximo aceito para o módulo ser adicionado como uma dependência direta. A versão do módulo implica o nível de compatibilidade mínimo aceito, bem como o máximo, se esse atributo não for especificado.
|
repo_name
|
default = '' O nome do repositório externo que representa essa dependência. Esse é o nome padrão do módulo. |
dev_dependency
|
padrão = False Se verdadeiro, essa dependência será ignorada se o módulo atual não for o módulo raiz ou se `--ignore_dev_dependency` estiver ativado. |
vincular
None bind(name, actual=None)
Aviso: o uso de bind()
não é recomendado. Consulte Considere remover a vinculação para uma discussão mais longa sobre os problemas e as alternativas.
Dá um alias a um destino no pacote //external
.
Parâmetros
Parâmetro | Descrição |
---|---|
name
|
Obrigatório O rótulo em "//external" para servir como o nome do alias |
actual
|
string; or None ;
padrão = NoneO rótulo real a ser associado |
bool
bool bool(x=False)
False
se o objeto for None
, False
, uma string vazia (""
), o número 0
ou uma coleção vazia (por exemplo, ()
, []
). Caso contrário, ele retorna True
.
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
default = False A variável a ser convertida. |
configuration_field
LateBoundDefault configuration_field(fragment, name)
Exemplo de uso:
Como definir um atributo de regra:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
Acesso na implementação de regras:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
Parâmetros
Parâmetro | Descrição |
---|---|
fragment
|
required O nome de um fragmento de configuração que contém o valor de vinculação tardia. |
name
|
required O nome do valor a ser extraído do fragmento de configuração. |
depset
depset depset(direct=None, order="default", *, transitive=None)
direct
é uma lista de elementos diretos do depset, e o parâmetro transitive
é uma lista de depsets cujos elementos se tornam elementos indiretos do depset criado. A ordem em que os elementos são retornados quando o depset é convertido em uma lista é especificada pelo parâmetro order
. Consulte a Visão geral dos conjuntos de dependências para mais informações.
Todos os elementos (diretos e indiretos) de um depset precisam ser do mesmo tipo, conforme obtido pela expressão type(x)
.
Como um conjunto baseado em hash é usado para eliminar duplicatas durante a iteração, todos os elementos de um depset precisam ser hasháveis. No entanto, esse invariante não é verificado de forma consistente em todos os construtores. Use a flag --incompatible_always_check_depset_elements para ativar a verificação consistente. Esse será o comportamento padrão em versões futuras. Consulte Issue 10313.
Além disso, os elementos precisam ser imutáveis, embora essa restrição seja relaxada no futuro.
A ordem do depset criado precisa ser compatível com a ordem dos depsets transitive
. O pedido "default"
é compatível com qualquer outro pedido, e todos os outros pedidos são compatíveis apenas com eles mesmos.
Observação sobre compatibilidade com versões anteriores/posteriores. No momento, essa função aceita um parâmetro items
posicional. Ele foi descontinuado e será removido no futuro. Depois da remoção, direct
vai se tornar um parâmetro posicional único da função depset
. Portanto, as duas chamadas a seguir são equivalentes e preparadas para o futuro:
depset(['a', 'b'], transitive = [...]) depset(direct = ['a', 'b'], transitive = [...])
Parâmetros
Parâmetro | Descrição |
---|---|
direct
|
sequence; or None ;
default = NoneUma lista de elementos direct de um depset. |
order
|
default = "default" A estratégia de travessia para o novo depset. Consulte aqui os valores possíveis. |
transitive
|
sequence of depsets; or None ;
default = NoneUma lista de depsets cujos elementos se tornarão elementos indiretos do depset. |
dict
dict dict(pairs=[], **kwargs)
Parâmetros
Parâmetro | Descrição |
---|---|
pairs
|
default = [] Uma matriz ou um iterável cujos elementos têm comprimento 2 (chave, valor). |
kwargs
|
required Dicionário de entradas adicionais. |
dir
list dir(x)
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
required O objeto a ser verificado. |
enumerar
list enumerate(list, start=0)
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]
Parâmetros
Parâmetro | Descrição |
---|---|
list
|
sequência de entrada necessária. |
start
|
O padrão é 0 , o índice de início. |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[], copy_from_rule=False)
Parâmetros
Parâmetro | Descrição |
---|---|
toolchains
|
sequence ;
default = []O conjunto de toolchains que este grupo de execução exige. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. |
exec_compatible_with
|
sequence of strings ;
default = []Uma lista de restrições na plataforma de execução. |
copy_from_rule
|
padrão = False Se definido como verdadeiro, esse grupo de execução herda as cadeias de ferramentas e restrições da regra a que ele está associado. Se definido como qualquer outra string, isso vai gerar um erro. |
fail
None fail(msg=None, attr=None, *args)
Parâmetros
Parâmetro | Descrição |
---|---|
msg
|
padrão = None Descontinuado: use argumentos posicionais. Esse argumento funciona como um argumento posicional principal implícito. |
attr
|
string; or None ;
default = NoneDescontinuado. Faz com que um prefixo opcional que contém essa string seja adicionado à mensagem de erro. |
args
|
required Uma lista de valores formatados com debugPrint (que é equivalente a str por padrão) e unidos por espaços, que aparecem na mensagem de erro. |
float
float float(x=unbound)
- Se
x
já for um número flutuante,float
vai retornar o valor sem alterações. - Se
x
for um booleano,float
vai retornar 1,0 para "true" e 0,0 para "false". - Se
x
for um int,float
vai retornar o valor de ponto flutuante finito mais próximo de x ou um erro se a magnitude for muito grande. - Se
x
for uma string, ela precisa ser um literal de ponto flutuante válido ou ser igual (ignorando maiúsculas e minúsculas) aNaN
,Inf
ouInfinity
, opcionalmente precedido por um sinal+
ou-
.
float()
retorna 0,0.
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
default = unbound O valor a ser convertido. |
getattr
unknown getattr(x, name, default=unbound)
default
(se especificado) ou gera um erro. getattr(x, "foobar")
é equivalente a x.foobar
.getattr(ctx.attr, "myattr") getattr(ctx.attr, "myattr", "mydefault")
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
required A estrutura cujo atributo é acessado. |
name
|
required O nome do atributo do struct. |
default
|
default = unbound O valor padrão a ser retornado caso a struct não tenha um atributo com o nome especificado. |
git_override
None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)
Parâmetros
Parâmetro | Descrição |
---|---|
module_name
|
required O nome da dependência do módulo do Bazel para aplicar essa substituição. |
remote
|
obrigatório O URL do repositório Git remoto. |
commit
|
default = '' O commit que precisa ser extraído. |
patches
|
Iterable of strings ;
default = []Uma lista de identificadores que apontam para arquivos de patch a serem aplicados a este módulo. Os arquivos de patch precisam existir na árvore de origem do projeto de nível superior. Elas são aplicadas na ordem da lista. |
patch_cmds
|
Iterable of strings ;
default = []Sequência de comandos Bash a serem aplicados no Linux/Macos após a aplicação dos patches. |
patch_strip
|
default = 0 É o mesmo que o argumento --strip do patch Unix. |
hasattr
bool hasattr(x, name)
x
tiver um atributo ou método do name
fornecido. Caso contrário, retorna "False". Exemplo:hasattr(ctx.attr, "myattr")
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
required O objeto a ser verificado. |
name
|
required O nome do atributo. |
jogo da velha
int hash(value)
String.hashCode()
do Java, ou seja: s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
Parâmetros
Parâmetro | Descrição |
---|---|
value
|
required Valor de string para hash. |
int
int int(x, base=unbound)
- Se
x
já for um int,int
vai retornar o valor sem alterações. - Se
x
for um tipo bool,int
vai retornar 1 para "True" e 0 para "False". - Se
x
for uma string, ela precisa ter o formato<sign><prefix><digits>
.<sign>
é"+"
,"-"
ou vazio (interpretado como positivo).<digits>
são uma sequência de dígitos de 0 atébase
- 1, em que as letras a-z (ou, de forma equivalente, A-Z) são usadas como dígitos de 10 a 35. No caso em quebase
é 2/8/16,<prefix>
é opcional e pode ser 0b/0o/0x (ou equivalentemente, 0B/0O/0X). Se obase
for qualquer outro valor além dessas bases ou o valor especial 0, o prefixo precisará estar vazio. No caso em quebase
é 0, a string é interpretada como um literal inteiro, no sentido de que uma das bases 2/8/10/16 é escolhida dependendo do prefixo usado. Sebase
for 0, nenhum prefixo será usado e, se houver mais de um dígito, o dígito inicial não poderá ser 0. Isso é para evitar confusão entre octal e decimal. A magnitude do número representado pela string precisa estar dentro do intervalo permitido para o tipo int. - Se
x
for um número flutuante,int
vai retornar o valor inteiro do número flutuante, arredondando para zero. Ocorrerá um erro se x for não finito (NaN ou infinito).
x
for de qualquer outro tipo ou se o valor for uma string que não atende ao formato acima. Ao contrário da função int
do Python, essa função não permite argumentos nulos e não permite espaços em branco extras para argumentos de string.Exemplos:
int("123") == 123 int("-123") == -123 int("+123") == 123 int("FF", 16) == 255 int("0xFF", 16) == 255 int("10", 0) == 10 int("-0x10", 0) == -16 int("-0x10", 0) == -16 int("123.456") == 123
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
required A string a ser convertida. |
base
|
default = unbound A base usada para interpretar um valor de string; o padrão é 10. Precisa estar entre 2 e 36 (inclusive) ou 0 para detectar a base como se x fosse um literal inteiro. Esse parâmetro não pode ser fornecido se o valor não for uma string.
|
len
int len(x)
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
required O valor cujo comprimento será informado. |
list
list list(x=[])
list([1, 2]) == [1, 2] list((2, 3, 2)) == [2, 3, 2] list({5: "a", 2: "b", 4: "c"}) == [5, 2, 4]
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
default = [] O objeto a ser convertido. |
local_path_override
None local_path_override(module_name, path)
Parâmetros
Parâmetro | Descrição |
---|---|
module_name
|
required O nome da dependência do módulo do Bazel para aplicar essa substituição. |
path
|
required O caminho para o diretório em que este módulo está. |
max
unknown max(*args)
max(2, 5, 4) == 5 max([5, 6, 3]) == 6
Parâmetros
Parâmetro | Descrição |
---|---|
args
|
required Os elementos a serem verificados. |
min
unknown min(*args)
min(2, 5, 4) == 2 min([5, 6, 3]) == 3
Parâmetros
Parâmetro | Descrição |
---|---|
args
|
required Os elementos a serem verificados. |
module
None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])
Ele precisa ser chamado no máximo uma vez. Ele só pode ser omitido se for o módulo raiz, ou seja, se não depender de outro módulo.
Parâmetros
Parâmetro | Descrição |
---|---|
name
|
default = '' O nome do módulo. Só pode ser omitido se esse módulo for o raiz, ou seja, se não for usado por outro módulo. Um nome de módulo válido precisa: 1) conter apenas letras minúsculas (a-z), dígitos (0-9), pontos (.), hifens (-) e sublinhados (_); 2) começar com uma letra minúscula; 3) terminar com uma letra minúscula ou um dígito. |
version
|
default = '' A versão do módulo. Só pode ser omitido se esse módulo for o raiz, ou seja, se não for usado por outro módulo. |
compatibility_level
|
default = 0 O nível de compatibilidade do módulo. Ele precisa ser alterado sempre que uma mudança importante e incompatível for introduzida. Essa é essencialmente a "versão principal" do módulo em termos de SemVer, exceto que ela não está incorporada à string de versão, mas existe como um campo separado. Módulos com níveis de compatibilidade diferentes participam da resolução de versão como se fossem módulos com nomes diferentes, mas o gráfico de dependência final não pode conter vários módulos com o mesmo nome, mas níveis de compatibilidade diferentes, a menos que multiple_version_override esteja em vigor. Consulte esse artigo para mais detalhes.
|
repo_name
|
default = '' O nome do repositório que representa esse módulo, conforme visto pelo próprio módulo. Por padrão, o nome do repositório é o mesmo do módulo. Isso pode ser especificado para facilitar a migração de projetos que usam um nome de repositório diferente do nome do módulo. |
bazel_compatibility
|
Iterable of strings ;
default = []Uma lista de versões do Bazel que permite aos usuários declarar quais versões do Bazel são compatíveis com esse módulo. Ele NÃO afeta a resolução de dependências, mas o bzlmod vai usar essas informações para verificar se a versão atual do Bazel é compatível. O formato desse valor é uma string de alguns valores de restrição separados por vírgulas. Três restrições são aceitas: <=X.X.X: a versão do Bazel precisa ser igual ou anterior a X.X.X. É usada quando há uma mudança incompatível conhecida em uma versão mais recente. >=X.X.X: a versão do Bazel precisa ser igual ou mais recente que X.X.X.Usado quando você depende de alguns recursos que só estão disponíveis desde X.X.X. -X.X.X: a versão X.X.X do Bazel não é compatível. Usado quando há um bug na X.X.X que afeta você, mas foi corrigido em versões posteriores. |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc='', environ=[], os_dependent=False, arch_dependent=False)
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
required A função que implementa essa extensão de módulo. Precisa usar um único parâmetro, module_ctx . A função é chamada uma vez no início de um build para determinar o conjunto de repositórios disponíveis.
|
tag_classes
|
default = {} Um dicionário para declarar todas as classes de tags usadas pela extensão. Ele mapeia o nome da classe de tag para um objeto tag_class .
|
doc
|
default = '' Uma descrição da extensão do módulo que pode ser extraída por ferramentas de geração de documentação. |
environ
|
sequence of strings ;
default = []Fornece uma lista de variáveis de ambiente de que a extensão do módulo depende. Se uma variável de ambiente nessa lista mudar, a extensão será reavaliada. |
os_dependent
|
default = False Indica se a extensão depende do SO ou não |
arch_dependent
|
default = False Indica se a extensão depende da arquitetura ou não |
multiple_version_override
None multiple_version_override(module_name, versions, registry='')
Parâmetros
Parâmetro | Descrição |
---|---|
module_name
|
required O nome da dependência do módulo do Bazel para aplicar essa substituição. |
versions
|
Iterable of strings ;
obrigatórioEspecifica explicitamente as versões permitidas para coexistir. Essas versões já precisam estar presentes na pré-seleção do gráfico de dependências. As dependências desse módulo serão "upgradeadas" para a versão mais recente permitida no mesmo nível de compatibilidade. Já as dependências com uma versão mais recente do que qualquer versão permitida no mesmo nível de compatibilidade vão causar um erro. |
registry
|
default = '' Ignora o registro desse módulo. Em vez de encontrar esse módulo na lista padrão de registros, o registro fornecido precisa ser usado. |
mostrar
None print(sep=" ", *args)
args
como saída de depuração. Ele vai ter o prefixo da string "DEBUG"
e o local (arquivo e número da linha) dessa chamada. A maneira exata em que os argumentos são convertidos em strings não é especificada e pode mudar a qualquer momento. Em particular, pode ser diferente (e mais detalhado) do formato feito por str()
e repr()
.Não é recomendável usar print
no código de produção devido ao spam que ele cria para os usuários. Para descontinuações, prefira um erro grave usando fail()
sempre que possível.
Parâmetros
Parâmetro | Descrição |
---|---|
sep
|
default = " " A string de separador entre os objetos, o padrão é espaço (" "). |
args
|
required Os objetos a serem impressos. |
provider
unknown provider(doc='', *, fields=None, init=None)
MyInfo = provider() ... def _my_library_impl(ctx): ... my_info = MyInfo(x = 2, y = 3) # my_info.x == 2 # my_info.y == 3 ...
Consulte Regras (provedores) para conferir um guia completo sobre como usar provedores.
Retorna um valor Provider
que pode ser chamado se init
não for especificado.
Se init
for especificado, retornará uma tupla de dois elementos: um valor acionável Provider
e um valor acionável construtor bruto. Consulte Regras (inicialização personalizada de provedores personalizados) e a discussão sobre o parâmetro init
abaixo para saber mais.
Parâmetros
Parâmetro | Descrição |
---|---|
doc
|
default = '' Uma descrição do provedor que pode ser extraída por ferramentas de geração de documentação. |
fields
|
sequence of strings; or dict; or None ;
padrão = NoneSe especificado, restringe o conjunto de campos permitidos. Os valores possíveis são:
|
init
|
callable; or None ;
default = NoneUm callback opcional para pré-processar e validar os valores de campo do provedor durante a instanciação. Se init for especificado, provider() vai retornar uma tupla de dois elementos: o símbolo de provedor normal e um construtor bruto.Confira uma descrição precisa a seguir. Consulte Regras (inicialização personalizada de provedores) para uma discussão intuitiva e casos de uso. Deixe
init não é fornecido, uma chamada para o símbolo P atua como uma chamada para a função de construtor padrão c . Em outras palavras, P(*args, **kwargs) retorna c(*args, **kwargs) . Por exemplo,MyInfo = provider() m = MyInfo(foo = 1) m seja uma instância MyInfo com m.foo == 1 .No entanto, se
Observação: as etapas acima implicam que um erro ocorre se Dessa forma, o callback Quando MyInfo, _new_myinfo = provider(init = ...) |
período
sequence range(start_or_stop, stop_or_none=None, step=1)
start
a stop
, usando um incremento step
. Se um único argumento for fornecido, os itens vão variar de 0 a esse elemento.range(4) == [0, 1, 2, 3] range(3, 9, 2) == [3, 5, 7] range(3, 0, -1) == [3, 2, 1]
Parâmetros
Parâmetro | Descrição |
---|---|
start_or_stop
|
obrigatório Valor do elemento de início se a parada for fornecida. Caso contrário, o valor da parada e a inicialização real será 0. |
stop_or_none
|
int; or None ;
padrão = Noneíndice opcional do primeiro item não a ser incluído na lista resultante. A geração da lista é interrompida antes de stop ser alcançada.
|
step
|
default = 1 O incremento (padrão é 1). Ele pode ser negativo. |
register_execution_platforms()
None register_execution_platforms(*platform_labels)
Parâmetros
Parâmetro | Descrição |
---|---|
platform_labels
|
sequence of strings ;
requiredOs rótulos das plataformas a serem registradas. |
register_execution_platforms(dev_dependency)
None register_execution_platforms(dev_dependency=False, *platform_labels)
@
ou //
). Consulte a resolução do conjunto de ferramentas para mais informações.
Parâmetros
Parâmetro | Descrição |
---|---|
dev_dependency
|
padrão = False Se verdadeiro, as plataformas de execução não serão registradas se o módulo atual não for o módulo raiz ou se o `--ignore_dev_dependency` estiver ativado. |
platform_labels
|
sequence of strings ;
requiredOs rótulos das plataformas a serem registradas. |
register_toolchains()
None register_toolchains(*toolchain_labels)
Parâmetros
Parâmetro | Descrição |
---|---|
toolchain_labels
|
sequence of strings ;
requiredOs rótulos das cadeias de ferramentas a serem registradas. |
register_toolchains(dev_dependency)
None register_toolchains(dev_dependency=False, *toolchain_labels)
@
ou //
). Consulte a resolução do conjunto de ferramentas para mais informações.
Parâmetros
Parâmetro | Descrição |
---|---|
dev_dependency
|
padrão = False Se verdadeiro, as cadeias de ferramentas não serão registradas se o módulo atual não for o raiz ou se o `--ignore_dev_dependency` estiver ativado. |
toolchain_labels
|
sequence of strings ;
requiredOs rótulos das cadeias de ferramentas a serem registradas. |
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
necessário a função que implementa essa regra. Precisa ter um único parâmetro, repository_ctx . A função é chamada durante a fase de carregamento para cada instância da regra.
|
attrs
|
dict; or None ;
padrão = dicionário para declarar todos os atributos da regra. Ele mapeia um nome de atributo para um objeto de atributo (consulte o módulo attr). Os atributos que começam com _ são particulares e podem ser usados para adicionar uma dependência implícita de um rótulo a um arquivo. Uma regra de repositório não pode depender de um artefato gerado. O atributo name é adicionado implicitamente e não precisa ser especificado.
|
local
|
default = False Indica que essa regra busca tudo do sistema local e precisa ser reavaliada a cada busca. |
environ
|
sequence of strings ;
default = []Fornece uma lista de variáveis de ambiente das quais essa regra do repositório depende. Se uma variável de ambiente nessa lista mudar, o repositório será buscado novamente. |
configure
|
default = False Indica que o repositório inspeciona o sistema para fins de configuração |
remotable
|
default = False Experimental. Esse parâmetro é experimental e pode mudar a qualquer momento. Não dependa dele. Ele pode ser ativado de forma experimental definindo ---experimental_repo_remote_exec Compatível com execução remota |
doc
|
default = '' Uma descrição da regra do repositório que pode ser extraída por ferramentas de geração de documentação. |
repr
string repr(x)
repr("ab") == '"ab"'
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
required O objeto a ser convertido. |
anulou
list reversed(sequence)
reversed([3, 5, 4]) == [4, 5, 3]
Parâmetros
Parâmetro | Descrição |
---|---|
sequence
|
required A sequência iterável (por exemplo, lista) a ser revertida. |
regra
callable rule(implementation, test=False, attrs=None, outputs=None, executable=False, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, provides=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, compile_one_filetype=None, name=None)
As regras precisam ser atribuídas a variáveis globais em um arquivo .bzl. O nome da variável global é o nome da regra.
As regras de teste precisam ter um nome que termine em _test
, enquanto todas as outras regras não podem ter esse sufixo. Essa restrição se aplica apenas às regras, não aos alvos delas.
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
required A função Starlark que implementa essa regra precisa ter exatamente um parâmetro: ctx. A função é chamada durante a fase de análise para cada instância da regra. Ele pode acessar os atributos fornecidos pelo usuário. Ele precisa criar ações para gerar todas as saídas declaradas. |
test
|
default = False Indica se a regra é de teste, ou seja, se ela pode ser o assunto de um comando blaze test . Todas as regras de teste são consideradas executáveis automaticamente. Não é necessário (e não é recomendado) definir executable = True explicitamente para uma regra de teste. Consulte a página de regras para mais informações.
|
attrs
|
dict; or None ;
padrão = dicionário para declarar todos os atributos da regra. Ele mapeia um nome de atributo para um objeto de atributo (consulte o módulo attr). Os atributos que começam com _ são privados e podem ser usados para adicionar uma dependência implícita a um rótulo. O atributo name é adicionado implicitamente e não precisa ser especificado. Os atributos visibility , deprecation , tags , testonly e features são adicionados implicitamente e não podem ser substituídos. A maioria das regras precisa apenas de alguns atributos. Para limitar o uso de memória, a função de regra impõe um limite ao tamanho dos atributos.
|
outputs
|
dict; or None; or function ;
default = NoneDescontinuado. Este parâmetro foi descontinuado e será removido em breve. Não dependa dele. Ele está desativado com ---incompatible_no_rule_outputs_param . Use essa flag para verificar se o código é compatível com a remoção iminente. Este parâmetro foi descontinuado. Migrar regras para usar OutputGroupInfo ou attr.output . Um esquema para definir saídas predeclaradas. Ao contrário dos atributos O valor desse argumento é um dicionário ou uma função de callback que produz um dicionário. O callback funciona de forma semelhante aos atributos de dependência computados: os nomes de parâmetro da função são comparados com os atributos da regra. Por exemplo, se você transmitir Cada entrada no dicionário cria uma saída predeclarada em que a chave é um identificador e o valor é um modelo de string que determina o rótulo da saída. Na função de implementação da regra, o identificador se torna o nome do campo usado para acessar o
Na prática, o marcador de posição de substituição mais comum é |
executable
|
default = False Indica se essa regra é considerada executável, ou seja, se ela pode ser o assunto de um comando blaze run . Consulte a página de regras para mais informações.
|
output_to_genfiles
|
default = False Se verdadeiro, os arquivos serão gerados no diretório genfiles em vez do diretório bin. Não defina essa flag, a menos que você precise dela para compatibilidade com regras atuais (por exemplo, ao gerar arquivos de cabeçalho para C++). |
fragments
|
sequence of strings ;
default = []Lista de nomes de fragmentos de configuração que a regra exige na configuração de destino. |
host_fragments
|
sequence of strings ;
default = []Lista de nomes de fragmentos de configuração que a regra exige na configuração do host. |
_skylark_testable
|
padrão = False (Experimental) Se verdadeiro, essa regra vai expor as ações para inspeção por regras que dependem dela por um provedor de Ações. O provedor também está disponível para a regra chamando ctx.created_actions(). Ele só deve ser usado para testar o comportamento no momento da análise das regras do Starlark. Essa flag pode ser removida no futuro. |
toolchains
|
sequence ;
default = []Se definido, o conjunto de toolchains necessário para essa regra. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. As cadeias de ferramentas serão encontradas verificando a plataforma atual e fornecidas à implementação da regra por meio de ctx.toolchain .
|
incompatible_use_toolchain_transition
|
default = False Deprecated, this is no longer in use and should be removed. |
doc
|
default = '' Uma descrição da regra que pode ser extraída por ferramentas de geração de documentação. |
provides
|
default = [] Uma lista de provedores que a função de implementação precisa retornar. É um erro se a função de implementação omitir qualquer um dos tipos de provedor listados aqui do valor de retorno. No entanto, a função de implementação pode retornar outros provedores não listados aqui. Cada elemento da lista é um objeto |
exec_compatible_with
|
sequence of strings ;
default = []Uma lista de restrições na plataforma de execução que se aplicam a todos os destinos desse tipo de regra. |
analysis_test
|
default = False Se verdadeiro, essa regra é tratada como um teste de análise. Observação: as regras de teste de análise são definidas principalmente usando a infraestrutura fornecida nas bibliotecas principais do Starlark. Consulte Testes para ver orientações. Se uma regra for definida como uma regra de teste de análise, ela poderá usar transições de configuração definidas usando analysis_test_transition nos atributos, mas vai aceitar algumas restrições:
|
build_setting
|
BuildSetting; or None ;
padrão = NoneSe definido, descreve o tipo de build setting desta regra. Consulte o módulo config . Se esse valor for definido, um atributo obrigatório chamado "build_setting_default" será adicionado automaticamente a essa regra, com um tipo correspondente ao valor transmitido.
|
cfg
|
padrão = Nenhum Se definido, aponta para a transição de configuração que a regra vai aplicar à própria configuração antes da análise. |
exec_groups
|
dict; or None ;
padrão = NoneDicionário do nome do grupo de execução (string) para exec_group s. Se definido, permite que as regras executem ações em várias plataformas de execução em um único destino. Consulte a documentação sobre grupos de execução para mais informações.
|
compile_one_filetype
|
sequence of strings; or None ;
default = NoneUsado por --compile_one_dependency: se várias regras consumirem o arquivo especificado, essa regra será escolhida em vez das outras. |
name
|
string; or None ;
default = NoneDescontinuado. Este parâmetro foi descontinuado e será removido em breve. Não dependa dele. Ele está desativado com --+incompatible_remove_rule_name_parameter . Use essa flag para verificar se o código é compatível com a remoção iminente. Descontinuado: não use. O nome dessa regra, conforme entendido pelo Bazel e informado em contextos como registro, Se esse parâmetro for omitido, o nome da regra será definido como o nome da primeira variável global do Starlark a ser vinculada a essa regra no módulo .bzl declarado. Assim, Especificar um nome explícito para uma regra não muda onde você pode instanciar a regra. |
select
unknown select(x, no_match_error='')
select()
é a função auxiliar que torna um atributo de regra configurável. Consulte a enciclopédia de builds para mais detalhes.
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
required Um dicionário que mapeia condições de configuração para valores. Cada chave é um rótulo ou uma string de rótulo que identifica uma instância de config_setting ou constraint_value. Consulte a documentação sobre macros para saber quando usar um rótulo em vez de uma string. |
no_match_error
|
padrão = '' Erro personalizado opcional a ser informado se nenhuma condição corresponder. |
single_version_override
None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)
Parâmetros
Parâmetro | Descrição |
---|---|
module_name
|
required O nome da dependência do módulo do Bazel para aplicar essa substituição. |
version
|
default = '' Ignora a versão declarada deste módulo no gráfico de dependências. Em outras palavras, esse módulo será "fixado" nessa versão de substituição. Esse atributo pode ser omitido se tudo o que você quer substituir for o registro ou os patches. |
registry
|
default = '' Ignora o registro desse módulo. Em vez de encontrar esse módulo na lista padrão de registros, o registro fornecido precisa ser usado. |
patches
|
Iterable of strings ;
default = []Uma lista de identificadores que apontam para arquivos de patch a serem aplicados a este módulo. Os arquivos de patch precisam existir na árvore de origem do projeto de nível superior. Elas são aplicadas na ordem da lista. |
patch_cmds
|
Iterable of strings ;
default = []Sequência de comandos Bash a serem aplicados no Linux/Macos após a aplicação dos patches. |
patch_strip
|
default = 0 É o mesmo que o argumento --strip do patch Unix. |
ordenada
list sorted(iterable, *, key=None, reverse=False)
sorted([3, 5, 4]) == [3, 4, 5]
Parâmetros
Parâmetro | Descrição |
---|---|
iterable
|
required A sequência iterável a ser classificada. |
key
|
padrão = None Uma função opcional aplicada a cada elemento antes da comparação. |
reverse
|
padrão = False Retorna os resultados em ordem decrescente. |
str
string str(x)
str("ab") == "ab" str(8) == "8"
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
required O objeto a ser convertido. |
tag_class
tag_class tag_class(attrs={}, *, doc='')
Parâmetros
Parâmetro | Descrição |
---|---|
attrs
|
default = {} Um dicionário para declarar todos os atributos dessa classe de tag. Ele mapeia um nome de atributo para um objeto de atributo (consulte o módulo attr). |
doc
|
default = '' Uma descrição da classe de tag que pode ser extraída por ferramentas de geração de documentação. |
tuple
tuple tuple(x=())
tuple([1, 2]) == (1, 2) tuple((2, 3, 2)) == (2, 3, 2) tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
default = () O objeto a ser convertido. |
tipo
string type(x)
type(2) == "int" type([1]) == "list" type(struct(a = 2)) == "struct"
if type(x) == type([]): # if x is a list
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
required O objeto a ser verificado. |
use_extension
module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)
Parâmetros
Parâmetro | Descrição |
---|---|
extension_bzl_file
|
required Um rótulo para o arquivo Starlark que define a extensão do módulo. |
extension_name
|
required O nome da extensão do módulo a ser usada. Um símbolo com esse nome precisa ser exportado pelo arquivo Starlark. |
dev_dependency
|
default = False Se verdadeiro, esse uso da extensão do módulo será ignorado se o módulo atual não for o módulo raiz ou se o `--ignore_dev_dependency` estiver ativado. |
isolate
|
default = False Experimental. Esse parâmetro é experimental e pode mudar a qualquer momento. Não dependa dele. Ela pode ser ativada de forma experimental definindo ---experimental_isolated_extension_usages . Se for verdadeiro, esse uso da extensão do módulo será isolado de todos os outros usos, tanto neste quanto em outros módulos. As tags criadas para esse uso não afetam outros usos, e os repositórios gerados pela extensão para esse uso são diferentes de todos os outros repositórios gerados pela extensão. Esse parâmetro é experimental e está disponível apenas com a flag |
use_repo
None use_repo(extension_proxy, *args, **kwargs)
Parâmetros
Parâmetro | Descrição |
---|---|
extension_proxy
|
required Um objeto proxy de extensão de módulo retornado por uma chamada use_extension .
|
args
|
required Os nomes dos repositórios a serem importados. |
kwargs
|
required Especifica repositórios específicos para importação no escopo do módulo atual com nomes diferentes. As chaves precisam ser o nome a ser usado no escopo atual, e os valores precisam ser os nomes originais exportados pela extensão do módulo. |
visibilidade
None visibility(value)
Define a visibilidade de carregamento do módulo .bzl que está sendo inicializado.
A visibilidade de carregamento de um módulo determina se outros arquivos BUILD e .bzl podem carregá-lo ou não. Isso é diferente da visibilidade de destino do arquivo de origem .bzl, que determina se o arquivo pode aparecer como uma dependência de outros destinos. A visibilidade de carregamento funciona no nível dos pacotes: para carregar um módulo, o arquivo que faz o carregamento precisa estar em um pacote que tenha recebido visibilidade para o módulo. Um módulo sempre pode ser carregado no próprio pacote, independentemente da visibilidade.
visibility()
só pode ser chamado uma vez por arquivo .bzl e apenas no nível superior, não dentro de uma função. O estilo preferido é colocar essa chamada logo abaixo das instruções load()
e de qualquer lógica breve necessária para determinar o argumento.
Se a flag --check_bzl_visibility
estiver definida como falsa, as violações de visibilidade de carregamento vão emitir avisos, mas não vão falhar no build.
Parâmetros
Parâmetro | Descrição |
---|---|
value
|
required Uma lista de strings de especificação de pacote ou uma única string de especificação de pacote. As especificações de pacote seguem o mesmo formato de
A sintaxe "@" não é permitida. Todas as especificações são interpretadas em relação ao repositório do módulo atual. Se As flags |
espaço de trabalho
None workspace(name)
Essa função só pode ser usada em um arquivo WORKSPACE
e precisa ser declarada antes de todas as outras funções no arquivo WORKSPACE
. Cada arquivo WORKSPACE
precisa ter uma função workspace
.
Define o nome do espaço de trabalho. Os nomes dos espaços de trabalho precisam ser uma descrição no estilo de pacote Java do projeto, usando sublinhados como separadores. Por exemplo, github.com/bazelbuild/bazel precisa usar com_github_bazelbuild_bazel.
Esse nome é usado para o diretório em que os runfiles do repositório são armazenados. Por exemplo, se houver um runfile foo/bar
no repositório local e o arquivo WORKSPACE contiver workspace(name = 'baz')
, o runfile vai estar disponível em mytarget.runfiles/baz/foo/bar
. Se nenhum nome de espaço de trabalho for especificado, o arquivo de execução vai ser vinculado simbolicamente a bar.runfiles/foo/bar
.
Os nomes de regras de repositório remoto precisam ser nomes de espaços de trabalho válidos. Por exemplo, você pode ter maven_jar(name = 'foo')
, mas não maven_jar(name = 'foo%bar')
, porque o Bazel tentaria gravar um arquivo WORKSPACE para o maven_jar
que contém workspace(name = 'foo%bar')
.
Parâmetros
Parâmetro | Descrição |
---|---|
name
|
obrigatório o nome do espaço de trabalho. Os nomes precisam começar com uma letra e só podem conter letras, números, sublinhados, traços e pontos. |
zip
list zip(*args)
list
de tuple
s, em que a tupla i contém o elemento i de cada uma das sequências de argumentos ou iteráveis. A lista tem o tamanho da entrada mais curta. Com um único argumento iterável, ele retorna uma lista de tuplas de 1. Sem argumentos, ele retorna uma lista vazia. Exemplos:zip() # == [] zip([1, 2]) # == [(1,), (2,)] zip([1, 2], [3, 4]) # == [(1, 3), (2, 4)] zip([1, 2], [3, 4, 5]) # == [(1, 3), (2, 4)]
Parâmetros
Parâmetro | Descrição |
---|---|
args
|
listas necessárias para compactar. |