Membros
- todos
- analysis_test_transition
- qualquer um
- archive_override
- aspecto
- bazel_dep
- vínculo
- bool
- configuration_field
- depset
- dicionário
- dir
- enumerate (em inglês)
- exec_group
- falha
- float
- getattr
- git_override
- hasattr
- hash
- int
- len (link em inglês)
- list
- local_path_override
- max
- min
- module
- module_extension
- multiple_version_override
- provedor
- range
- register_execution_platforms()
- register_execution_platforms(dev_dependency)
- register_toolchains()
- register_toolchains(dev_dependency)
- repository_rule
- repr
- invertida
- regra
- Selecione
- single_version_override
- classificado
- str
- tag_class
- tupla
- type
- use_extension
- use_repo
- visibilidade
- espaço de trabalho
- 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. Esta 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ências é limitado). Portanto, as transições criadas usando essa função têm um escopo potencial limitado em comparação com as transições criadas usando transição.
Essa função foi projetada principalmente para facilitar a biblioteca principal do framework de teste de análise (em inglês). Consulte a documentação (ou implementação) dele para conhecer as práticas recomendadas.
Parâmetros
Parâmetro | Descrição |
---|---|
settings
|
obrigatório Um dicionário contendo informações sobre as definições de configuração que devem 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 não foram alteradas. Use-o para declarar definições de configuração específicas que um teste de análise requer que seja definido para ser aprovado. |
qualquer um
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
|
obrigatório O nome da dependência do módulo do Bazel a que essa substituição será aplicada. |
urls
|
string; or Iterable of strings
obrigatórioOs URLs do arquivo podem ser URLs http(s):// ou file://. |
integrity
|
padrão = '' A soma de verificação esperada do arquivo, no formato Sub-resource Integrity. |
strip_prefix
|
padrão = '' Um prefixo de diretório a ser removido dos arquivos extraídos. |
patches
|
Iterable of strings
padrão = []Uma lista de rótulos 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
padrão = []Sequência de comandos Bash a serem aplicados no Linux/Macos após a aplicação dos patches. |
patch_strip
|
padrão = 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
|
obrigatório Uma função do Starlark que implementa esse aspecto, com exatamente dois parâmetros: Target (o destino ao qual o aspecto é aplicado) e ctx (o contexto da regra de onde a segmentação é criada). 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 em um objetivo.
|
attr_aspects
|
sequence of strings
padrão = []Lista de nomes de atributos. O aspecto é propagado com as dependências especificadas nos atributos de um destino com esses nomes. Os valores comuns aqui incluem deps e exports . A lista também pode conter uma única string "*" para ser propagada em todas as dependências de um destino.
|
attrs
|
dict; or None
padrão = NenhumUm dicionário que declara todos os atributos do aspecto. Ele é mapeado 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 implementação funcionar como campos do parâmetro ctx . Atributos implícitos que começam com Os atributos explícitos precisam ser do tipo |
required_providers
|
padrão = [] Esse atributo permite que o aspecto limite sua 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 de provedores não aninhados será automaticamente convertida em uma lista com uma lista de provedores. Ou seja, Para tornar algumas regras (por exemplo, |
required_aspect_providers
|
padrão = [] 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 de provedores não aninhados será automaticamente convertida em uma lista com uma lista de provedores. Ou seja, Para tornar outro aspecto (por exemplo, |
provides
|
padrão = [] Uma lista de provedores que a função de implementação precisa retornar. É um erro se a função de implementação omitir do valor de retorno qualquer um dos tipos de provedores listados aqui. No entanto, a função de implementação pode retornar provedores adicionais não listados aqui. Cada elemento da lista é um objeto |
requires
|
sequence of Aspects
padrão = []Lista de aspectos que precisam ser propagados antes deste aspecto. |
fragments
|
sequence of strings
padrão = []Lista de nomes de fragmentos de configuração que o aspecto exige na configuração de destino. |
host_fragments
|
sequence of strings
padrão = []Lista de nomes de fragmentos de configuração que o aspecto exige na configuração do host. |
toolchains
|
sequence
padrão = []Se definido, o conjunto de conjuntos de ferramentas exigido por essa regra. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. Os conjuntos de ferramentas são encontrados ao verificar a plataforma atual e fornecidos à implementação da regra via ctx.toolchain .
|
incompatible_use_toolchain_transition
|
padrão = Falso Obsoleto, ele não está mais em uso e precisa ser removido. |
doc
|
padrão = '' Uma descrição do aspecto que pode ser extraída por ferramentas de geração de documentação. |
apply_to_generating_rules
|
padrão = Falso Se for verdadeiro, o aspecto será aplicado, quando aplicado a um arquivo de saída, à regra de geração desse arquivo. Por exemplo, suponha que um aspecto se propaga de forma transitiva pelo atributo "deps" e é 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 "charlie" de destino como um dos "deps" dele. Se "apply_to_generation_rules=True" para o aspecto, ele será propagado por "alpha", "beta" e "charlie". Se for falso, o aspecto será propagado apenas para "alfa". Falso por padrão. |
exec_compatible_with
|
sequence of strings
padrão = []Uma lista de restrições na plataforma de execução que se aplicam a todas as instâncias deste aspecto. |
exec_groups
|
dict; or None
padrão = NenhumDitado 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 dentro de uma única instância. Consulte a documentação dos 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
|
padrão = '' A versão do módulo a ser adicionada como uma dependência direta. |
max_compatibility_level
|
padrão = -1 O máximo de compatibility_level com suporte 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 compatível, bem como o máximo, se este atributo não for especificado.
|
repo_name
|
padrão = '' O nome do repositório externo que representa essa dependência. Por padrão, é o nome do módulo. |
dev_dependency
|
padrão = Falso Se for verdadeira, 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 ver uma discussão longa sobre os problemas e as alternativas.
Dá um alias ao destino no pacote //external
.
Parâmetros
Parâmetro | Descrição |
---|---|
name
|
obrigatório O rótulo em '//external' servir como o nome do alias |
actual
|
string; or None
padrão = NenhumO rótulo real que vai receber o alias |
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, retorna True
.
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
padrão = Falso Variável a ser convertida. |
configuration_field
LateBoundDefault configuration_field(fragment, name)
Exemplo de uso:
Definindo um atributo de regra:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
Acessando na implementação de regras:
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 vinculado tardiamente. |
name
|
obrigatório O nome do valor a ser recebido do fragmento de configuração. |
Depset
depset depset(direct=None, order="default", *, transitive=None)
direct
é uma lista de elementos diretos do componente, e o parâmetro transitive
é uma lista de dependências cujos elementos se tornam elementos indiretos do ambiente criado. A ordem em que os elementos são retornados quando o dispositivo é convertido em uma lista é especificada pelo parâmetro order
. Consulte a Visão geral de escopos para mais informações.
Todos os elementos (diretos e indiretos) de um dispositivo 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 passíveis de hash. No entanto, essa invariante não é verificada de forma consistente em todos os construtores. Usar a flag --incompatible_always_check_depset_elementos para ativar a verificação consistente; esse será o comportamento padrão em versões futuras. consulte o problema 10313 (link em inglês).
Além disso, os elementos precisam ser imutáveis atualmente, embora essa restrição seja flexibilizada no futuro.
A ordem da desativação criada precisa ser compatível com a ordem das dependências de transitive
. O pedido de "default"
é compatível com qualquer outro pedido. Todos os outros pedidos são compatíveis somente com ele mesmo.
Observação sobre a compatibilidade com versões anteriores e posteriores. No momento, essa função aceita um parâmetro items
posicional. Ela foi descontinuada e será removida no futuro. Após a remoção, direct
se tornará o único parâmetro de posição da função depset
. Assim, as duas chamadas a seguir são equivalentes e estão preparadas para o futuro:
depset(['a', 'b'], transitive = [...]) depset(direct = ['a', 'b'], transitive = [...])
Parâmetros
Parâmetro | Descrição |
---|---|
direct
|
sequence; or None
padrão = NenhumUma lista de elementos diretos de um dispositivo. |
order
|
padrão = "padrão" Estratégia de travessia para a nova implantação. Veja os valores possíveis aqui. |
transitive
|
sequence of depsets; or None
padrão = NenhumUma lista de dispositivos com elementos que se tornarão elementos indiretos deles. |
Ditado
dict dict(pairs=[], **kwargs)
Parâmetros
Parâmetro | Descrição |
---|---|
pairs
|
padrão = [] Um dict ou um iterável com elementos de comprimento 2 (chave, valor). |
kwargs
|
obrigatório 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
|
obrigatório sequência de entrada. |
start
|
padrão = 0 índice inicial. |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[], copy_from_rule=False)
Parâmetros
Parâmetro | Descrição |
---|---|
toolchains
|
sequence
padrão = []O conjunto de conjuntos de ferramentas exigido por esse grupo de execução. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. |
exec_compatible_with
|
sequence of strings
padrão = []Uma lista de restrições na plataforma de execução. |
copy_from_rule
|
padrão = Falso Se definido como verdadeiro, este grupo de execução herdará os conjuntos de ferramentas e as restrições da regra à qual esse grupo 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
|
padrão = Nenhum Obsoleto: use argumentos posicionais. Esse argumento atua como um argumento posicional implícito inicial. |
attr
|
string; or None
padrão = NenhumObsoleto. Faz com que um prefixo opcional que contenha 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 unidas com espaços, que aparecem na mensagem de erro. |
float
float float(x=unbound)
- Se
x
já for um ponto flutuante,float
o retornará inalterado. - Se
x
for booleano,float
retornará 1,0 para "True" e 0,0 para "False". - Se
x
for um int,float
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, precisará 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
|
padrão = não vinculado 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
|
obrigatório O struct cujo atributo é acessado. |
name
|
obrigatório O nome do atributo struct. |
default
|
padrão = não vinculado O valor padrão a ser retornado caso o struct não tenha um atributo com o nome determinado. |
git_override
None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)
Parâmetros
Parâmetro | Descrição |
---|---|
module_name
|
obrigatório 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
|
padrão = '' A confirmação a ser verificada. |
patches
|
Iterable of strings
padrão = []Uma lista de rótulos 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
padrão = []Sequência de comandos Bash a serem aplicados no Linux/Macos após a aplicação dos patches. |
patch_strip
|
padrão = 0 Igual ao argumento --strip do patch do Unix. |
hasattr
bool hasattr(x, name)
x
tem um atributo ou método do name
especificado. Caso contrário, "False". Exemplo:hasattr(ctx.attr, "myattr")
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
obrigatório O objeto a ser verificado. |
name
|
obrigatório 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
|
obrigatório Valor de string a ser gerado com hash. |
int
int int(x, base=unbound)
- Se
x
já for um int,int
o retornará inalterado. - Se
x
for booleano,int
retornará 1 para "True" e 0 para "False". - Se
x
for uma string, ela precisará ter o formato<sign><prefix><digits>
.<sign>
é"+"
,"-"
ou está vazio (interpretado como positivo).<digits>
são uma sequência de dígitos de 0 abase
- 1, em que as letras de a a z (ou equivalente, A a Z) são usadas como dígitos de 10 a 35. Quandobase
é 2/8/16,<prefix>
é opcional e pode ser 0b/0o/0x (ou equivalente, 0B/0O/0X), respectivamente. se obase
for qualquer outro valor além dessas bases ou o valor especial 0, o prefixo precisará estar vazio. Quandobase
é 0, a string é interpretada como um literal inteiro, ou seja, uma das bases 2/8/10/16 é escolhida dependendo de qual prefixo, se houver, é usado. Sebase
for 0, nenhum prefixo será usado e houver mais de um dígito, o dígito inicial não poderá ser 0. 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 ponto flutuante,int
retornará o valor inteiro do ponto flutuante, arredondando até zero. Um erro será ocorrido se x não for 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 nenhum argumento nem espaço em branco externo 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 String a ser convertida. |
base
|
padrão = não vinculado 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 de número inteiro. Esse parâmetro não poderá 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 tamanho 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
|
padrão = [] O objeto a ser convertido. |
local_path_override
None local_path_override(module_name, path)
Parâmetros
Parâmetro | Descrição |
---|---|
module_name
|
obrigatório O nome da dependência do módulo do Bazel a que essa substituição será aplicada. |
path
|
obrigatório 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
|
obrigatório 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
|
obrigatório 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 esse módulo for o módulo raiz (como se não depender de outro módulo).
Parâmetros
Parâmetro | Descrição |
---|---|
name
|
padrão = '' O nome do módulo. Pode ser omitido se esse módulo for o módulo raiz (como 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
|
padrão = '' A versão do módulo. Pode ser omitido se esse módulo for o módulo raiz (como se ele não depender de outro módulo). |
compatibility_level
|
padrão = 0 O nível de compatibilidade do módulo. isso deve ser alterado sempre que uma alteração grande incompatível for introduzida. Essa é essencialmente a "versão principal" do módulo em termos de SemVer, exceto por ele não estar incorporado na string da versão em si, mas existir como um campo separado. Módulos com diferentes níveis de compatibilidade participam da resolução da 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 com níveis de compatibilidade diferentes (a menos que multiple_version_override esteja em vigor. Confira mais detalhes).
|
repo_name
|
padrão = '' O nome do repositório que representa este módulo, como 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 próprio diferente do nome do módulo. |
bazel_compatibility
|
Iterable of strings
padrão = []Uma lista de versões do Bazel que permite aos usuários declarar quais versões do Bazel são compatíveis com este módulo. Ele NÃO afeta a resolução da dependência, 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írgula. Três restrições são aceitas: <=X.X.X: a versão do Bazel precisa ser igual ou anterior a X.X.X. Usado quando há uma alteração 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.Usada quando você depende de alguns recursos disponíveis somente a partir de X.X.X. -X.X.X: a versão X.X.X do Bazel não é compatível. Usado quando há um bug em X.X.X que atrapalha você, mas 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
|
obrigatório A função que implementa essa extensão de módulo. É preciso usar um único parâmetro, module_ctx . A função é chamada uma vez no início de uma compilação 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. Ela é mapeada do nome da classe de tag para um objeto tag_class .
|
doc
|
padrão = '' Uma descrição da extensão do módulo que pode ser extraída por ferramentas que geram documentação. |
environ
|
sequence of strings
padrão = []Fornece uma lista de variáveis de ambiente da qual esta extensão de módulo depende. Se uma variável de ambiente dessa lista mudar, a extensão será reavaliada. |
os_dependent
|
padrão = Falso Indica se a extensão depende do SO ou não |
arch_dependent
|
padrão = Falso 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
|
obrigatório O nome da dependência do módulo do Bazel a que essa substituição será aplicada. |
versions
|
Iterable of strings
obrigatórioEspecifica explicitamente as versões que podem coexistir. É preciso que essas versões já estejam presentes na pré-seleção do gráfico de dependências. As dependências neste módulo serão "atualizadas" para a versão mais recente permitida mais próxima no mesmo nível de compatibilidade, enquanto as dependências que têm uma versão mais recente do que qualquer outra permitida no mesmo nível vão causar um erro. |
registry
|
padrão = '' Substitui o registro deste módulo. em vez de encontrar esse módulo na lista padrão de registros, use o registro fornecido. |
mostrar
None print(sep=" ", *args)
args
como saída de depuração. Ele será prefixado com 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, ela pode ser diferente e mais detalhada que a formatação feita por str()
e repr()
.O uso de print
no código de produção não é recomendado devido ao spam criado para os usuários. Para descontinuações, prefira um erro grave usando fail()
sempre que possível.
Parâmetros
Parâmetro | Descrição |
---|---|
sep
|
padrão = " " A string separadora entre os objetos. O padrão é espaço (" "). |
args
|
obrigatório 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 acessar um guia completo sobre como usar provedores.
Retorna um valor chamável Provider
se init
não for especificado.
Se init
for especificado, retornará uma tupla de dois elementos: um valor chamável Provider
e um valor chamável do 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
|
padrão = '' 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 = NenhumSe especificado, restringe o conjunto de campos permitidos. Os valores possíveis são:
|
init
|
callable; or None
padrão = NenhumUm callback opcional para pré-processamento e validação dos valores de campo do provedor durante a instanciação. Se init for especificado, provider() retornará uma tupla de dois elementos: o símbolo do provedor normal e um construtor bruto.A seguir, há uma descrição precisa; consulte Regras (Inicialização personalizada de provedores) para ter uma discussão intuitiva e casos de uso. Permita que
init não é fornecido, uma chamada para o próprio 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, no caso em que
Observação: as etapas acima implicam que um erro vai ocorrer 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
para stop
, usando um incremento 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
|
obrigatório Valor do elemento inicial se a parada for fornecida; caso contrário, o valor de parada e o início real será 0 |
stop_or_none
|
int; or None
padrão = Nenhumíndice opcional do primeiro item não a ser incluído na lista resultante; a geração da lista é interrompida antes de atingir stop .
|
step
|
padrão = 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
obrigatórioOs 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 = Falso 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 "--ignore_dev_dependency" estiver ativado. |
platform_labels
|
sequence of strings
obrigatórioOs 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
obrigatórioOs rótulos dos conjuntos de ferramentas a serem registrados. |
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 = Falso Se verdadeiro, os conjuntos de ferramentas não serão registrados se o módulo atual não for o módulo raiz ou se "--ignore_dev_dependency" estiver ativado. |
toolchain_labels
|
sequence of strings
obrigatórioOs rótulos dos conjuntos de ferramentas a serem registrados. |
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
obrigatório a função que implementa a regra. É preciso 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 = Nenhumdicionário para declarar todos os atributos da regra. Ele é mapeado 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 em 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
|
padrão = Falso Indique que essa regra busca tudo no sistema local e precisa ser reavaliada a cada busca. |
environ
|
sequence of strings
padrão = []Fornece uma lista de variáveis de ambiente de que esta regra de repositório depende. Se uma variável de ambiente nessa lista mudar, o repositório será buscado novamente. |
configure
|
padrão = Falso Indicar que o repositório inspeciona o sistema para fins de configuração |
remotable
|
padrão = Falso Experimental. Esse parâmetro é experimental e pode ser alterado a qualquer momento. Não dependa disso. Para ativar esse recurso experimental, defina ---experimental_repo_remote_exec Compatível com a execução remota |
doc
|
padrão = '' Uma descrição da regra do repositório que pode ser extraída por ferramentas de geração de documentação. |
rep.
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
|
obrigatório 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 terminado em _test
, e todas as outras regras não podem ter esse sufixo. Essa restrição se aplica somente a regras, não a seus destinos.
Parâmetros
Parâmetro | Descrição |
---|---|
implementation
|
obrigatório 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
|
padrão = Falso Se essa regra é de teste, ou seja, se pode ser objeto de um comando blaze test . Todas as regras de teste são automaticamente consideradas executáveis. é desnecessá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
padrão = Nenhumdicionário para declarar todos os atributos da regra. Ele é mapeado 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 em 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 de poucos atributos. Para limitar o uso da memória, a função de regra impõe um limite no tamanho das atribuições.
|
outputs
|
dict; or None; or function
padrão = NenhumDescontinuado. Esse parâmetro está obsoleto e será removido em breve. Não dependa disso. Ele está desativado com ---incompatible_no_rule_outputs_param . Use essa sinalização para verificar se seu código é compatível com a remoção iminente. Esse 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 de parâmetro da função são comparados 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 substituição mais comum é |
executable
|
padrão = Falso Indica se essa regra é considerada executável, ou seja, se pode ser objeto de um comando blaze run . Consulte a página Regras para mais informações.
|
output_to_genfiles
|
padrão = Falso Se verdadeiro, os arquivos serão gerados no diretório genfiles em vez de no diretório bin. A menos que você precise para compatibilidade com as regras existentes (por exemplo, ao gerar arquivos de cabeçalho para C++), não defina essa flag. |
fragments
|
sequence of strings
padrão = []Lista de nomes dos fragmentos de configuração que a regra exige na configuração de destino. |
host_fragments
|
sequence of strings
padrão = []Lista de nomes dos fragmentos de configuração que a regra exige na configuração do host. |
_skylark_testable
|
padrão = Falso (Experimental) Se for "true", esta regra vai expor as ações para inspeção pelas regras que dependem dela por um provedor Actions. O provedor também fica disponível para a própria regra chamando ctx.created_actions(). Essa opção só deve ser usada para testar o comportamento do tempo de análise das regras do Starlark. Essa sinalização pode ser removida no futuro. |
toolchains
|
sequence
padrão = []Se definido, o conjunto de conjuntos de ferramentas exigido por essa regra. A lista pode conter objetos String, Label ou StarlarkToolchainTypeApi, em qualquer combinação. Os conjuntos de ferramentas são encontrados ao verificar a plataforma atual e fornecidos à implementação da regra via ctx.toolchain .
|
incompatible_use_toolchain_transition
|
padrão = Falso Obsoleto, ele não está mais em uso e precisa ser removido. |
doc
|
padrão = '' Uma descrição da regra que pode ser extraída por ferramentas de geração de documentação. |
provides
|
padrão = [] Uma lista de provedores que a função de implementação precisa retornar. É um erro se a função de implementação omitir do valor de retorno qualquer um dos tipos de provedores listados aqui. No entanto, a função de implementação pode retornar provedores adicionais não listados aqui. Cada elemento da lista é um objeto |
exec_compatible_with
|
sequence of strings
padrão = []Uma lista de restrições na plataforma de execução que se aplicam a todos os destinos deste tipo de regra. |
analysis_test
|
padrão = Falso Se verdadeiro, a 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 principais bibliotecas do Starlark. Consulte Testes para ver orientações. Se uma regra for definida como uma regra de teste de análise, ela poderá usar as transições de configuração definidas com analysis_test_transition nos atributos, mas com algumas restrições:
|
build_setting
|
BuildSetting; or None
padrão = NenhumSe definido, descreve o tipo de build setting da regra. Consulte o módulo config . Se esse valor for definido, um atributo obrigatório chamado "build_setting_default" é adicionado automaticamente a esta regra, com um tipo correspondente ao valor passado aqui.
|
cfg
|
padrão = Nenhum Se definido, aponta para a transição de configuração que a regra aplicará à própria configuração antes da análise. |
exec_groups
|
dict; or None
padrão = NenhumDitado 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 dentro de um único destino. Consulte a documentação dos grupos de execução para mais informações.
|
compile_one_filetype
|
sequence of strings; or None
padrão = NenhumUsado por --compile_one_dependency: se várias regras consomem o arquivo especificado, devemos escolher essa regra em vez de outras. |
name
|
string; or None
padrão = NenhumDescontinuado. Esse parâmetro está obsoleto e será removido em breve. Não dependa disso. Ele está desativado com --+incompatible_remove_rule_name_parameter . Use essa sinalização para verificar se seu código é compatível com a remoção iminente. Descontinuado: não use. O nome da regra, conforme compreendido pelo Bazel e relatado 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 dentro do módulo de declaração .bzl. Assim, Especificar um nome explícito para a regra não altera o local em que você tem permissão para 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 criação para mais detalhes.
Parâmetros
Parâmetro | Descrição |
---|---|
x
|
obrigatório Um dicionário que mapeia condições de configuração para valores. Cada chave é um Label ou uma string de rótulo que identifica uma instância "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
|
obrigatório O nome da dependência do módulo do Bazel a que essa substituição será aplicada. |
version
|
padrão = '' Substitui a versão declarada deste módulo no gráfico de dependências. Em outras palavras, este módulo ficará "fixado" para esta versão de substituição. Esse atributo pode ser omitido se só quisermos substituir o registro ou os patches. |
registry
|
padrão = '' Substitui o registro deste módulo. em vez de encontrar esse módulo na lista padrão de registros, use o registro fornecido. |
patches
|
Iterable of strings
padrão = []Uma lista de rótulos 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
padrão = []Sequência de comandos Bash a serem aplicados no Linux/Macos após a aplicação dos patches. |
patch_strip
|
padrão = 0 Igual ao argumento --strip do patch do Unix. |
ordenado
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
|
padrão = Nenhum Uma função opcional aplicada a cada elemento antes da comparação. |
reverse
|
padrão = Falso retorna os 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 é mapeado de um nome de atributo para um objeto de atributo (consulte o módulo attr). |
doc
|
padrão = '' Uma descrição da classe de tag que pode ser extraída por ferramentas que geram 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
|
padrão = () 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
|
obrigatório O tipo de objeto que 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
|
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 do módulo a ser usada. Um símbolo com esse nome precisa ser exportado pelo arquivo Starlark. |
dev_dependency
|
padrão = Falso 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 "--ignore_dev_dependency" estiver ativado. |
isolate
|
padrão = Falso Experimental. Esse parâmetro é experimental e pode ser alterado a qualquer momento. Não dependa disso. Ela pode ser ativada experimentalmente definindo ---experimental_isolated_extension_usages . Se verdadeiro, esse uso da extensão do módulo será isolado de todos os outros usos, tanto neste módulo quanto em outros. As tags criadas para esse uso não afetam outros usos, e os repositórios gerados pela extensão para esse uso serão diferentes de todos os outros repositórios gerados pela extensão. No momento, esse parâmetro é experimental e só está disponível com a flag |
use_repo
None use_repo(extension_proxy, *args, **kwargs)
Parâmetros
Parâmetro | Descrição |
---|---|
extension_proxy
|
obrigatório Um objeto de 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
|
obrigatório Especifica determinados repositórios a serem importados 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 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 ou não carregá-lo. Isso é diferente da visibilidade do destino do arquivo de origem .bzl subjacente, que determina se o arquivo pode aparecer como uma dependência de outros destinos. A visibilidade de carga funciona no nível de pacotes: para carregar um módulo, o arquivo que está fazendo o carregamento precisa estar em um pacote que tenha recebido visibilidade para o módulo. Um módulo sempre pode ser carregado dentro do próprio pacote, independentemente da visibilidade.
O visibility()
só pode ser chamado uma vez por arquivo .bzl e somente no nível superior, não dentro de uma função. O estilo recomendado é 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
for definida como falsa, as violações de visibilidade de carregamento vão emitir avisos, mas não vão causar uma falha no 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 de
O "@" 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 desse espaço de trabalho. Os nomes dos espaços de trabalho devem ser uma descrição no estilo de pacote Java do projeto, 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 arquivos de execução do repositório são armazenados. Por exemplo, se houver um arquivo de execução foo/bar
no repositório local e o arquivo de ESPAÇO DE TRABALHO 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 será vinculado a bar.runfiles/foo/bar
.
Os nomes das regras do repositório remoto precisam ser nomes de espaços de trabalho válidos. Por exemplo, é possível ter maven_jar(name = 'foo')
, mas não maven_jar(name = 'foo%bar')
, porque o Bazel tenta gravar um arquivo de ESPAÇO DE TRABALHO 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-ésima contém o elemento i-ésimo de cada uma das sequências de argumento ou iteráveis. A lista tem o tamanho da entrada mais curta. Com um único argumento iterável, ela retorna uma lista de tuplas únicas. 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 listas a serem compactadas. |