implementation
ao criar uma extensão de módulo.
Participantes
- fazer download
- download_and_extract
- execute
- extension_metadata
- file
- is_dev_dependency
- modules
- os
- path
- ler
- report_progress
- root_module_has_non_dev_dependency
- que
Baixar
struct module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')Faz o download de um arquivo para o caminho de saída do URL fornecido e retorna uma estrutura contendo
success
, uma sinalização true
se o download for concluído e, se for bem-sucedido, um hash do arquivo com os campos sha256
e integrity
.
Parâmetros
Parâmetro | Descrição |
---|---|
url
|
string ou Iterable de strings;
obrigatório Lista de URLs espelhados que fazem referência ao mesmo arquivo. |
output
|
string, Label ou path. O padrão é o caminho '' para o arquivo de saída, relativo ao diretório do repositório. |
sha256
|
o padrão é '' o hash SHA-256 esperado do arquivo transferido por download. Ele precisa corresponder ao hash SHA-256 do arquivo transferido por download. É um risco à segurança omitir o SHA-256 porque os arquivos remotos podem mudar. Na melhor das hipóteses, a omissão desse campo tornará sua construção não hermética. Ele é opcional para facilitar o desenvolvimento, mas deve ser definido antes do envio. |
executable
|
O padrão é False define a flag executável no arquivo criado, que é "false" por padrão. |
allow_fail
|
o padrão é False Se definido, indica o erro no valor de retorno em vez de gerar um erro para downloads com falha |
canonical_id
|
o padrão é '' Se definido, restringe as ocorrências em cache aos casos em que o arquivo foi adicionado ao cache com o mesmo ID canônico. |
auth
|
o padrão é {} Um dict opcional que especifica informações de autenticação para alguns dos URLs. |
integrity
|
o padrão é '' Soma de verificação esperada do arquivo transferido por download, no formato Sub-resource Integrity. Ela precisa corresponder à soma de verificação do arquivo baixado. É um risco à segurança omitir a soma de verificação porque os arquivos remotos podem mudar. Na melhor das hipóteses, a omissão desse campo tornará sua construção não hermética. Ele é opcional para facilitar o desenvolvimento, mas deve ser definido antes do envio. |
download_and_extract
struct module_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, *, integrity='', rename_files={})Faz o download de um arquivo para o caminho de saída do URL fornecido, extrai esse arquivo e retorna um struct contendo
success
, uma sinalização true
se o download for concluído e, se for bem-sucedido, um hash do arquivo com os campos sha256
e integrity
.
Parâmetros
Parâmetro | Descrição |
---|---|
url
|
string ou Iterable de strings;
obrigatório Lista de URLs espelhados que fazem referência ao mesmo arquivo. |
output
|
string, Label ou path. O padrão é '' o caminho para o diretório em que o arquivo será descompactado, em relação ao diretório do repositório. |
sha256
|
o padrão é '' o hash SHA-256 esperado do arquivo transferido por download. Ele precisa corresponder ao hash SHA-256 do arquivo transferido por download. É um risco à segurança omitir o SHA-256 porque os arquivos remotos podem mudar. Na melhor das hipóteses, a omissão desse campo tornará sua construção não hermética. Ele é opcional para facilitar o desenvolvimento, mas deve ser definido antes do envio. Se fornecido, o cache do repositório será verificado primeiro em busca de um arquivo com o hash fornecido. Só será feita uma tentativa de download se o arquivo não for encontrado no cache. Após um download bem-sucedido, o arquivo será adicionado ao cache. |
type
|
O padrão é '' o tipo do arquivo transferido por download. Por padrão, o tipo de arquivo é determinado a partir da extensão do arquivo do URL. Se o arquivo não tiver extensão, você poderá especificar explicitamente "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" ou ".deb". |
stripPrefix
|
o padrão é '' um prefixo de diretório a ser removido dos arquivos extraídos. Muitos arquivos contêm um diretório de nível superior que contém todos os arquivos do arquivamento. Em vez de especificar esse prefixo várias vezes no build_file , esse campo pode ser usado para removê-lo dos arquivos extraídos.
|
allow_fail
|
o padrão é False Se definido, indica o erro no valor de retorno em vez de gerar um erro para downloads com falha |
canonical_id
|
o padrão é '' Se definido, restringe as ocorrências em cache aos casos em que o arquivo foi adicionado ao cache com o mesmo ID canônico. |
auth
|
o padrão é {} Um dict opcional que especifica informações de autenticação para alguns dos URLs. |
integrity
|
o padrão é '' Soma de verificação esperada do arquivo transferido por download, no formato Sub-resource Integrity. Ela precisa corresponder à soma de verificação do arquivo baixado. É um risco à segurança omitir a soma de verificação porque os arquivos remotos podem mudar. Na melhor das hipóteses, a omissão desse campo tornará sua construção não hermética. Ele é opcional para facilitar o desenvolvimento, mas deve ser definido antes do envio. |
rename_files
|
o padrão é {} Um dict opcional que especifica os arquivos que serão renomeados durante a extração. Entradas de arquivo com nomes que correspondem exatamente a uma chave serão renomeadas para o valor, antes de qualquer ajuste de prefixo de diretório. Isso pode ser usado para extrair arquivos que contenham nomes de arquivo não Unicode ou que tenham arquivos que seriam extraídos para o mesmo caminho em sistemas de arquivos que não diferenciam maiúsculas de minúsculas. |
execute
exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")Executa o comando fornecido pela lista de argumentos. O tempo de execução do comando é limitado por
timeout
(em segundos, o padrão é 600 segundos). Esse método retorna uma estrutura exec_result
que contém a saída do comando. O mapa environment
pode ser usado para substituir algumas variáveis de ambiente a serem transmitidas para o processo.
Parâmetros
Parâmetro | Descrição |
---|---|
arguments
|
obrigatório Lista de argumentos. O primeiro elemento precisa ser o caminho para o programa a ser executado. |
timeout
|
o padrão é a duração máxima de 600 do comando em segundos (o padrão é de 600 segundos). |
environment
|
o padrão é {} força algumas variáveis de ambiente a serem definidas para serem transmitidas ao processo. |
quiet
|
o padrão é True Se stdout e stderr precisam ser impressos no terminal. |
working_directory
|
o padrão é "" Diretório de trabalho para a execução do comando. Pode ser absoluto ou relativo à raiz do repositório. |
extension_metadata
extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None)Cria um objeto opaco que pode ser retornado da função de implementação da extensão do módulo para fornecer metadados ao Bazel sobre os repositórios gerados pela extensão.
Parâmetros
Parâmetro | Descrição |
---|---|
root_module_direct_deps
|
sequência de strings, ou string, ou None .
O padrão é None Os nomes dos repositórios que a extensão considera dependências diretas do módulo raiz. Se o módulo raiz importar outros repositórios ou não importar todos eles usando o use_repo , o Bazel vai mostrar um aviso e um comando de correção quando a extensão for avaliada.Se Exatamente um de |
root_module_direct_dev_deps
|
sequência de strings ou string; ou None ;
padrão é None Os nomes dos repositórios que a extensão considera como dependências de desenvolvimento diretas do módulo raiz. Se o módulo raiz importar outros repositórios ou não importar todos eles usando use_repo em um proxy de extensão criado com use_extension(..., dev_dependency = True) , o Bazel vai mostrar um aviso e um comando de correção quando a extensão for avaliada.Se Exatamente um de |
arquivo
None
module_ctx.file(path, content='', executable=True, legacy_utf8=True)
Gera um arquivo no diretório do repositório com o conteúdo fornecido.
Parâmetros
Parâmetro | Descrição |
---|---|
path
|
string ou Label, ou path,
o caminho obrigatório do arquivo a ser criado, relativo ao diretório do repositório. |
content
|
o padrão é '' o conteúdo do arquivo a ser criado, vazio por padrão. |
executable
|
O padrão é True define a sinalização executável no arquivo criado, como verdadeiro por padrão. |
legacy_utf8
|
o padrão é True codifique o conteúdo do arquivo como UTF-8, "true" por padrão. Versões futuras vão mudar o padrão e remover esse parâmetro. |
is_dev_dependency
bool module_ctx.is_dev_dependency(tag)Retorna se a tag especificada foi especificada no resultado de uma chamada use_extension com
devDependency = True
.
Parâmetros
Parâmetro | Descrição |
---|---|
tag
|
bazel_module_tag;
obrigatório Uma tag extraída de bazel_module.tags. |
modules
list module_ctx.modulesUma lista de todos os módulos do Bazel no gráfico de dependência externa que usam essa extensão de módulo, cada um sendo um objeto bazel_module que expõe todas as tags especificadas para essa extensão. A ordem de iteração desse dicionário é a mesma que a da pesquisa em amplitude, começando no módulo raiz.
os
repository_os module_ctx.osUm struct para acessar informações do sistema.
caminho
path module_ctx.path(path)Retorna um caminho de uma string, um rótulo ou um caminho. Se o caminho for relativo, ele será resolvido em relação ao diretório do repositório. Se o caminho for um rótulo, ele será resolvido para o caminho do arquivo correspondente. Os repositórios remotos são executados durante a fase de análise e, portanto, não podem depender de um resultado pretendido (o rótulo precisa apontar para um arquivo não gerado). Se o caminho for um caminho, ele será retornado no estado em que se encontra.
Parâmetros
Parâmetro | Descrição |
---|---|
path
|
string; ou Label; ou path;
string, rótulo ou caminho obrigatório que será usado para criar um caminho |
leitura
string module_ctx.read(path)Lê o conteúdo de um arquivo no sistema de arquivos.
Parâmetros
Parâmetro | Descrição |
---|---|
path
|
string ou Label ou path,
o caminho obrigatório do arquivo de leitura. |
report_progress
None
module_ctx.report_progress(status='')
Atualiza o status do progresso para a busca deste repositório ou extensão de módulo
Parâmetros
Parâmetro | Descrição |
---|---|
status
|
string;
o padrão é '' que descreve o status atual da busca |
root_module_has_non_dev_dependency
bool module_ctx.root_module_has_non_dev_dependencyDefine se o módulo raiz usa essa extensão como uma dependência não desenvolvedor.
qual
path module_ctx.which(program)Retorna o caminho do programa correspondente ou None, se esse programa não estiver no caminho.
Parâmetros
Parâmetro | Descrição |
---|---|
program
|
obrigatório Programa a ser encontrado no programa. |
None
.