Membros
- todos
- analysis_test_transition
- qualquer um
- archive_override
- aspect
- bazel_dep
- bind
- bool
- configuration_field
- depset
- dict
- dir
- enumerate
- exec_group
- fail
- 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
- revertida
- regra
- selecione
- single_version_override
- ordenado
- str
- tag_class
- tuple
- type
- use_extension
- use_repo
- visibility
- workspace
- zip
todas
bool all(elements)
all(["hello", 3, True]) == True all([-1, 0, 1]) == False
Parâmetros
| Parâmetro | Descrição |
|---|---|
elements
|
obrigatório 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 têm recursos restritos (por exemplo, o tamanho da árvore de dependências é limitado). Portanto, as transições criadas com essa função têm um escopo potencial limitado em comparação com as transições criadas usando transition.
Essa função foi criada 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
|
obrigatório Um dicionário com informações sobre as configurações que precisam ser definidas por essa transição de configuração. As chaves são rótulos de configuração 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 ter para ser aprovado. |
qualquer
bool any(elements)
any([-1, 0, 1]) == True any([False, 0, ""]) == False
Parâmetros
| Parâmetro | Descrição |
|---|---|
elements
|
obrigatório 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 a que essa substituição será aplicada. |
urls
|
string; or Iterable of strings;
requiredOs URLs do arquivo. Podem ser URLs http(s):// ou file://. |
integrity
|
default = '' O checksum esperado do arquivo de arquivo, no formato de integridade de subrecursos. |
strip_prefix
|
default = '' Um prefixo de diretório a ser removido dos arquivos extraídos. |
patches
|
Iterable of strings;
default = []Uma lista de rótulos que apontam para arquivos de patch a serem aplicados a este módulo. Os arquivos de patch precisam estar 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 depois que os patches forem aplicados. |
patch_strip
|
default = 0 Igual ao argumento --strip do patch do 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 de 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 ao longo das 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 propagação em todas as dependências de um destino.
|
attrs
|
dict; or None;
default = NoneUm dicionário que declara todos os atributos do aspecto. Ele mapeia de 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 ser do tipo |
required_providers
|
default = [] Esse atributo permite que o aspecto limite a propagação apenas aos destinos cujas regras anunciam os provedores necessá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, mas [FooInfo, BarInfo, [BazInfo, QuxInfo]] não é.Uma lista não aninhada de provedores será convertida automaticamente em uma lista com uma lista de provedores. Ou seja, Para tornar 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, mas [FooInfo, BarInfo, [BazInfo, QuxInfo]] não é.Uma lista não aninhada de provedores será convertida automaticamente em uma lista com 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 provedores 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 que precisam ser 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 exigido por essa regra. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. Para encontrar as toolchains, verifique a plataforma atual e forneça-as à implementação da regra usando ctx.toolchain.
|
incompatible_use_toolchain_transition
|
default = False Descontinuado. Não está mais em uso e precisa ser removido. |
doc
|
default = '' Uma descrição do aspecto que pode ser extraído por ferramentas de geração de documentação. |
apply_to_generating_rules
|
default = False Se for "true", o aspecto, quando aplicado a um arquivo de saída, será aplicado à regra de geração do arquivo de saída. Por exemplo, suponha que um aspecto se propague de maneira transitiva 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 uma das "deps". Se "apply_to_generating_rules=True" para o aspecto, ele será propagado por "alpha", "beta" e "charlie". Se for "False", o aspecto será propagado 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;
default = NoneDicionário do nome do grupo de execução (string) para exec_groups. 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
|
obrigatório O nome do módulo a ser adicionado como uma 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 que o módulo seja adicionado como uma dependência direta. A versão do módulo implica o nível mínimo de compatibilidade 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
|
default = False Se for "true", 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: não é recomendável usar bind(). Consulte Considere remover o bind para uma discussão longa sobre os problemas e alternativas.
Dá a um destino um alias no pacote //external.
Parâmetros
| Parâmetro | Descrição |
|---|---|
name
|
obrigatório O rótulo em "//external" para servir como nome do alias |
actual
|
string; or None;
default = NoneO rótulo real a ser apelidado. |
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:
Definir um atributo de regra:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
Acessar na implementação da regra:
def _rule_impl(ctx):
foo_info = ctx.attr._foo
...Parâmetros
| Parâmetro | Descrição |
|---|---|
fragment
|
obrigatório O nome de um fragmento de configuração que contém o valor de vinculação tardia. |
name
|
obrigatório O nome do valor a ser obtido do fragmento de configuração. |
depset
depset depset(direct=None, order="default", *, transitive=None)
direct é uma lista de elementos diretos do conjunto de dependências, e o parâmetro transitive é uma lista de conjuntos de dependências cujos elementos se tornam elementos indiretos do conjunto de dependências criado. A ordem em que os elementos são retornados quando o conjunto de dependências é convertido em uma lista é especificada pelo parâmetro order. Consulte a visão geral de conjuntos de dependências para mais informações.
Todos os elementos (diretos e indiretos) de um conjunto de dependências 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 conjunto de dependências precisam ser hasháveis. No entanto, essa invariante não é verificada 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 Problema 10313.
Além disso, os elementos precisam ser imutáveis, mas essa restrição será reduzida no futuro.
A ordem do conjunto de dependências criado precisa ser compatível com a ordem dos conjuntos de dependências transitive. A ordem "default" é compatível com qualquer outra ordem, e todas as outras são compatíveis apenas entre si.
Observação sobre compatibilidade com versões anteriores/futuras. No momento, essa função aceita um parâmetro posicional items. Ele foi descontinuado e será removido no futuro. Depois disso, direct vai se tornar um parâmetro posicional exclusivo 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 diretos de um conjunto de dependências. |
order
|
default = "default" A estratégia de travessia para o novo conjunto de dependências. 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 = [] Um dict ou um iterável em que cada elemento tem comprimento 2 (chave, valor). |
kwargs
|
required Dicionário de entradas adicionais. |
dir
list dir(x)
Parâmetros
| Parâmetro | Descrição |
|---|---|
x
|
obrigatório 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 obrigatória. |
start
|
default = 0 start index. |
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 exigido por este grupo de execução. 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
|
default = False Se definido como "true", esse grupo de execução vai herdar as cadeias de ferramentas e restrições da regra a que ele está anexado. 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
|
default = None Descontinuado: use argumentos posicionais. Esse argumento funciona como um argumento posicional inicial implícito. |
attr
|
string; or None;
default = NoneDescontinuado. Faz com que um prefixo opcional contendo essa string seja adicionado à mensagem de erro. |
args
|
obrigatório Uma lista de valores, formatada com debugPrint (que é equivalente a str por padrão) e unida com espaços, que aparece na mensagem de erro. |
float
float float(x=unbound)
- Se
xjá for um ponto flutuante,floatvai retornar o valor sem alterações. - Se
xfor um booleano,floatvai retornar 1,0 para "True" e 0,0 para "False". - Se
xfor um número inteiro,floatvai retornar o valor de ponto flutuante finito mais próximo de x ou um erro se a magnitude for muito grande. - Se
xfor uma string, ela precisará ser um literal de ponto flutuante válido ou ser igual (ignorando maiúsculas e minúsculas) aNaN,InfouInfinity, precedida opcionalmente 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 struct cujo atributo é acessado. |
name
|
obrigatório O nome do atributo 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 a que essa substituição será aplicada. |
remote
|
obrigatório O URL do repositório Git remoto. |
commit
|
default = '' O commit que precisa ser verificado. |
patches
|
Iterable of strings;
default = []Uma lista de rótulos que apontam para arquivos de patch a serem aplicados a este módulo. Os arquivos de patch precisam estar 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 depois que os patches forem aplicados. |
patch_strip
|
default = 0 Igual ao argumento --strip do patch do Unix. |
hasattr
bool hasattr(x, name)
x tiver um atributo ou método do name especificado. Caso contrário, retorna False. Exemplo:hasattr(ctx.attr, "myattr")
Parâmetros
| Parâmetro | Descrição |
|---|---|
x
|
obrigatório 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 a ser gerado o hash. |
int
int int(x, base=unbound)
- Se
xjá for um número inteiro,into retornará sem alterações. - Se
xfor um booleano,intvai retornar 1 para "True" e 0 para "False". - Se
xfor uma string, ela precisará ter o formato<sign><prefix><digits>.<sign>é"+","-"ou vazio (interpretado como positivo).<digits>é uma sequência de dígitos de 0 abase- 1, em que as letras a-z (ou 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, de forma equivalente, 0B/0O/0X), respectivamente. Sebasefor qualquer outro valor além dessas bases ou do valor especial 0, o prefixo precisará estar vazio. Quandobaseé 0, a string é interpretada como um literal inteiro, no sentido de que uma das bases 2/8/10/16 é escolhida dependendo de qual prefixo, se houver, é usado. Sebasefor 0, nenhum prefixo será usado, e se houver mais de um dígito, o primeiro não poderá ser 0. Isso evita 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
xfor um ponto flutuante,intvai retornar o valor inteiro do ponto flutuante, arredondando para zero. É 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 satisfaz o formato acima. Ao contrário da função int do Python, essa função não permite argumentos zero nem espaços em branco desnecessários 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
|
obrigatório 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 ser 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
|
obrigatório 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 a que essa substituição será aplicada. |
path
|
required O caminho para o diretório em que este módulo está. |
máx.
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. |
módulo
None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])
Ele deve ser chamado no máximo uma vez. Ele só pode ser omitido se este módulo 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. Pode ser omitido apenas se este módulo for o módulo raiz (ou seja, se ele não depender de 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. Pode ser omitido apenas se este módulo for o módulo raiz (ou seja, se ele não depender de outro módulo). |
compatibility_level
|
default = 0 O nível de compatibilidade do módulo. Ele precisa ser alterado sempre que uma mudança incompatível importante for introduzida. Essa é essencialmente a "versão principal" do módulo em termos de SemVer, exceto que ela não está incorporada na própria 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 mais detalhes lá.
|
repo_name
|
default = '' O nome do repositório que representa este módulo, conforme visto pelo próprio módulo. Por padrão, o nome do repositório é o nome 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 são compatíveis com este módulo. Ela NÃO afeta a resolução de dependências, mas o bzlmod usa 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írgula. Três restrições são aceitas: <=X.X.X: a versão do Bazel precisa ser igual ou mais antiga que 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 disponíveis apenas 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 versão X.X.X que prejudica 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 tag usadas pela extensão. Ele mapeia do 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 essa extensão de módulo depende. Se uma variável de ambiente nessa lista mudar, a extensão será reavaliada. |
os_dependent
|
default = False Indica se esta extensão depende do SO ou não |
arch_dependent
|
default = False Indica se esta 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 a que essa substituição será aplicada. |
versions
|
Iterable of strings;
requiredEspecifica explicitamente as versões que podem 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 "atualizadas" para a versão permitida mais próxima no mesmo nível de compatibilidade, enquanto as dependências que tiverem uma versão mais recente do que qualquer versão permitida no mesmo nível de compatibilidade vão causar um erro. |
registry
|
default = '' Substitui o registro deste módulo. Em vez de encontrar este módulo na lista padrão de registros, o registro fornecido deve ser usado. |
mostrar
None print(sep=" ", *args)
args como saída de depuração. Ele terá como prefixo a string "DEBUG" e o local (arquivo e número da linha) dessa chamada. A maneira exata como os argumentos são convertidos em strings não é especificada e pode mudar a qualquer momento. Em particular, ele pode ser diferente (e mais detalhado) da formatação feita por str() e repr().Não é recomendável usar print em código de produção devido ao spam que ele cria para os usuários. Para descontinuações, prefira um erro fatal usando fail() sempre que possível.
Parâmetros
| Parâmetro | Descrição |
|---|---|
sep
|
default = " " A string separadora entre os objetos. O padrão é espaço (" "). |
args
|
required Os objetos a serem impressos. |
provedor
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 um guia completo sobre como usar provedores.
Retorna um valor de chamada Provider se init não for especificado.
Se init for especificado, vai retornar uma tupla de dois elementos: um valor de chamada Provider e um valor de chamada construtor bruto. Consulte Regras (inicialização personalizada de provedores personalizados) e a discussão do parâmetro init abaixo para mais detalhes.
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;
default = 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 do provedor normal e um construtor bruto.Confira uma descrição precisa em Regras (inicialização personalizada de provedores) para uma discussão intuitiva e casos de uso. Seja
init não é fornecido, uma chamada ao próprio símbolo P atua como uma chamada à função construtora 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.Mas, no caso em que
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 de step. Se um único argumento for fornecido, os itens vão variar de 0 até 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
|
required Valor do elemento inicial se "stop" for fornecido. Caso contrário, valor de "stop" e o início real será 0. |
stop_or_none
|
int; or None;
default = Noneíndice opcional do primeiro item não a ser incluído na lista resultante. A geração da lista é interrompida antes que stop seja alcançado.
|
step
|
default = 1 O incremento (o 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 resolução da cadeia de ferramentas para mais informações.
Parâmetros
| Parâmetro | Descrição |
|---|---|
dev_dependency
|
default = False Se for "true", as plataformas de execução não serão registradas se o módulo atual não for o módulo raiz ou se `--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 resolução da cadeia de ferramentas para mais informações.
Parâmetros
| Parâmetro | Descrição |
|---|---|
dev_dependency
|
default = False Se for "true", as toolchains não serão registradas se o módulo atual não for o módulo raiz ou se `--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
|
required 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;
default = Nonedicionário para declarar todos os atributos da regra. Ele mapeia de 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 pode 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 de que essa regra de 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 dela. Ele pode ser ativado experimentalmente 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
|
obrigatório 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 invertida. |
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 a regras, não aos destinos 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 explicitamente executable = True para uma regra de teste. Consulte a página "Regras" para mais informações.
|
attrs
|
dict; or None;
default = Nonedicionário para declarar todos os atributos da regra. Ele mapeia de um nome de atributo para um objeto de atributo (consulte o módulo attr). Atributos que começam com _ são particulares e podem ser usados para adicionar uma dependência implícita a um rótulo. O atributo name é adicionado implicitamente e não pode 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 no tamanho de attrs.
|
outputs
|
dict; or None; or function;
default = NoneDescontinuado. Esse parâmetro foi descontinuado e será removido em breve. Não dependa dela. Ela fica desativada com ---incompatible_no_rule_outputs_param. Use essa flag para verificar se seu código é compatível com a remoção iminente. Este parâmetro foi descontinuado. Migre as regras para usar OutputGroupInfo ou attr.output. Um esquema para definir saídas pré-declaradas. 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 maneira semelhante aos atributos de dependência calculados: os nomes dos parâmetros da função são correspondidos aos atributos da regra. Por exemplo, se você transmitir Cada entrada no dicionário cria uma saída pré-declarada 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 "Regras" para mais informações.
|
output_to_genfiles
|
default = False Se for "true", os arquivos serão gerados no diretório "genfiles" em vez de "bin". A menos que você precise dela para compatibilidade com regras atuais (por exemplo, ao gerar arquivos de cabeçalho para C++), não defina essa flag. |
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
|
default = False (Experimental) Se for "true", essa regra vai expor as ações dela para inspeção por regras que dependem dela usando um provedor Actions. O provedor também está disponível para a própria regra chamando ctx.created_actions(). Isso 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 exigido por essa regra. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. Para encontrar as toolchains, verifique a plataforma atual e forneça-as à implementação da regra usando ctx.toolchain.
|
incompatible_use_toolchain_transition
|
default = False Descontinuado. Não está mais em uso e precisa ser removido. |
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 provedores 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 for "true", essa regra será 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 orientações. Se uma regra for definida como uma regra de teste de análise, ela poderá usar transições de configuração definidas com analysis_test_transition nos atributos, mas terá algumas restrições:
|
build_setting
|
BuildSetting; or None;
default = NoneSe definido, descreve que tipo de build setting essa regra é. Consulte o módulo config. Se essa opção estiver definida, um atributo obrigatório chamado "build_setting_default" será adicionado automaticamente a essa regra, com um tipo correspondente ao valor transmitido aqui.
|
cfg
|
default = None 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;
default = NoneDicionário do nome do grupo de execução (string) para exec_groups. 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, devemos escolher esta regra em vez de outras. |
name
|
string; or None;
default = NoneDescontinuado. Esse parâmetro foi descontinuado e será removido em breve. Não dependa dela. Ela fica desativada com --+incompatible_remove_rule_name_parameter. Use essa flag para verificar se seu 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 geração de registros, 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 de declaração. Assim, Especificar um nome explícito para uma regra não muda onde você pode instanciar a regra. |
selecionar
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
|
default = '' 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 a que essa substituição será aplicada. |
version
|
default = '' Substitui a versão declarada deste módulo no gráfico de dependência. Em outras palavras, esse módulo será "fixado" nessa versão de substituição. Esse atributo pode ser omitido se tudo o que se quer substituir é o registro ou os patches. |
registry
|
default = '' Substitui o registro deste módulo. Em vez de encontrar este módulo na lista padrão de registros, o registro fornecido deve ser usado. |
patches
|
Iterable of strings;
default = []Uma lista de rótulos que apontam para arquivos de patch a serem aplicados a este módulo. Os arquivos de patch precisam estar 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 depois que os patches forem aplicados. |
patch_strip
|
default = 0 Igual ao argumento --strip do patch do Unix. |
ordenada
list sorted(iterable, *, key=None, reverse=False)
sorted([3, 5, 4]) == [3, 4, 5]
Parâmetros
| Parâmetro | Descrição |
|---|---|
iterable
|
obrigatório A sequência iterável a ser classificada. |
key
|
default = None Uma função opcional aplicada a cada elemento antes da comparação. |
reverse
|
default = False Retorna resultados em ordem decrescente. |
str
string str(x)
str("ab") == "ab"
str(8) == "8"Parâmetros
| Parâmetro | Descrição |
|---|---|
x
|
obrigatório 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 de 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 para verificar o tipo. |
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
|
obrigatório Um rótulo para o arquivo Starlark que define a extensão do módulo. |
extension_name
|
obrigatório O nome da extensão de módulo a ser usada. Um símbolo com esse nome precisa ser exportado pelo arquivo Starlark. |
dev_dependency
|
default = False Se for "true", esse uso da extensão do módulo será ignorado se o módulo atual não for o módulo raiz ou se `--ignore_dev_dependency` estiver ativado. |
isolate
|
default = False Experimental. Esse parâmetro é experimental e pode mudar a qualquer momento. Não dependa dela. Ele pode ser ativado experimentalmente definindo ---experimental_isolated_extension_usages Se for "true", 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. No momento, 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
|
obrigatório Os nomes dos repositórios a serem importados. |
kwargs
|
required Especifica determinados repositórios para importar para o escopo do módulo atual com nomes diferentes. As chaves precisam ser o nome a ser usado no escopo atual, enquanto os valores precisam ser os nomes originais exportados pela extensão do módulo. |
visibilidade
None visibility(value)
Define a visibilidade de carga do módulo .bzl que está sendo inicializado.
A visibilidade de carga de um módulo determina se outros arquivos BUILD e .bzl podem carregá-lo. Isso é diferente da visibilidade de destino do arquivo de origem .bzl subjacente, 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, independente 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 imediatamente 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 "false", as violações de visibilidade de carregamento vão emitir avisos, mas não vão falhar na build.
Parâmetros
| Parâmetro | Descrição |
|---|---|
value
|
obrigatório 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 do
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 nesse 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 do projeto no estilo de pacote Java, usando sublinhados como separadores. Por exemplo, github.com/bazelbuild/bazel deve 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 arquivo de execução foo/bar no repositório local e o arquivo WORKSPACE contiver workspace(name = 'baz'), o arquivo de execução estará disponível em mytarget.runfiles/baz/foo/bar. Se nenhum nome de espaço de trabalho for especificado, o arquivo de execução será vinculado por um link simbólico a bar.runfiles/foo/bar.
Os nomes das 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 tuples, em que a tupla i-ésima contém o elemento i-ésimo de cada uma das sequências ou iteráveis de argumentos. A lista tem o tamanho da entrada mais curta. Com um único argumento iterável, ele retorna uma lista de tuplas de um elemento. 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
|
obrigatório para compactar. |