Regras
py_binary
Ver origem da regrapy_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_properties, features, imports, legacy_create_init, licenses, main, output_licenses, python_version, restricted_to, srcs_version, stamp, tags, target_compatible_with, testonly, toolchains, visibility)
  Um py_binary é um programa Python executável que consiste
  em uma coleção de arquivos de origem .py (que podem pertencer
  a outras regras py_library), uma árvore de diretórios *.runfiles
  que contém todo o código e os dados necessários para o
  programa em tempo de execução e um script stub que inicia o programa com
  o ambiente e os dados iniciais corretos.
Exemplos
py_binary(
    name = "foo",
    srcs = ["foo.py"],
    data = [":transform"],  # a cc_binary which we invoke at run time
    deps = [
        ":foolib",  # a py_library
    ],
)
Se você quiser executar um py_binary de outro binário ou
   teste (por exemplo, executar um binário Python para configurar algum recurso simulado de
   dentro de um java_test), a abordagem correta é fazer com que o outro binário ou
   teste dependa do py_binary na seção de dados. O outro
   binário pode localizar o py_binary relativo ao diretório
   de origem.
py_binary(
    name = "test_main",
    srcs = ["test_main.py"],
    deps = [":testing"],
)
java_library(
    name = "testing",
    srcs = glob(["*.java"]),
    data = [":test_main"]
)
Argumentos
| Atributos | |
|---|---|
| name | Nome: obrigatório Um nome exclusivo para essa segmentação. Se mainnão for especificado, ele será igual ao nome do arquivo de origem que é o ponto de entrada principal do aplicativo, sem a extensão.  Por exemplo, se o ponto de entrada for chamado demain.py, o nome deverá sermain. | 
| deps | Lista de rótulos. O padrão é  depsem
          
          Atributos típicos definidos pela maioria das regras de build.
          Geralmente, são regras depy_library. | 
| srcs | Lista de marcadores; obrigatórioA lista de arquivos de origem ( .py) processados para criar o destino.
          Isso inclui todo o código verificado e os arquivos de origem gerados. Os destinos de biblioteca
          pertencem adeps, enquanto outros arquivos binários necessários no tempo de execução pertencem adata. | 
| imports | Lista de strings. O padrão é  PYTHONPATH.
          Sujeito à substituição "Criar variável". Esses diretórios de importação serão adicionados a essa regra e a todas as regras que dependem dela (observação: não as regras de que essa regra depende). Cada diretório será adicionado a  
          Caminhos absolutos (que começam com  | 
| legacy_create_init | Número inteiro. O padrão é  --incompatible_default_to_explicit_init_pyseja usado. Se for "false", o usuário será
          responsável por criar arquivos __init__.py (possivelmente vazios) e adicioná-los aosrcsde destinos Python, conforme necessário. | 
| main | Rótulo; o padrão é  srcs. Se não for especificado,nameserá usado (veja acima). Senamenão corresponder a nenhum nome de arquivo emsrcs,mainprecisará ser especificado. | 
| python_version | String; não configurável; o padrão é  deps) para Python 2 ou Python
          3. Os valores válidos são"PY2"e"PY3"(o padrão).A versão do Python é sempre redefinida (possivelmente por padrão) para qualquer versão especificada por esse atributo, independente da versão especificada na linha de comando ou por outros destinos mais altos que dependem dela. Se você quiser  Aviso de bug:esse atributo define a versão para que o Bazel crie seu destino,
          mas, devido a #4815, o
          script stub resultante ainda pode invocar a versão errada do interpretador no tempo de execução. Consulte esta solução alternativa, que envolve definir uma meta  | 
| srcs_version | String; o padrão é  srcsdo destino é compatível com Python 2, Python 3 ou ambos. Para definir a versão do ambiente de execução do Python, use o atributopython_versionde uma
          regra executável do Python (py_binaryoupy_test).Os valores permitidos são:  Somente as regras executáveis ( Para receber informações de diagnóstico sobre quais dependências introduzem requisitos de versão,
          execute o aspecto  
          bazel build <your target> \
              --aspects=@rules_python//python:defs.bzl%find_requirements \
              --output_groups=pyversioninfo
          -pyversioninfo.txt, que informa
          por que seu destino exige uma versão do Python ou outra. Ele funciona mesmo que
          o destino especificado não tenha sido criado devido a um conflito de versão. | 
| stamp | Número inteiro. O padrão é  
 Os binários carimbados não são recriados, a menos que as dependências mudem. | 
py_library
Ver origem da regrapy_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, imports, licenses, restricted_to, srcs_version, tags, target_compatible_with, testonly, visibility)
Argumentos
| Atributos | |
|---|---|
| name | Nome: obrigatório Um nome exclusivo para essa segmentação. | 
| deps | Lista de rótulos. O padrão é  depsem
          
          Atributos típicos definidos pela maioria das regras de build.
          Geralmente, são regras depy_library. | 
| srcs | Lista de rótulos. O padrão é  .py) processados para criar o destino.
        Isso inclui todo o código verificado e os arquivos de origem gerados. | 
| imports | Lista de strings. O padrão é  PYTHONPATH.
          Sujeito à substituição "Criar variável". Esses diretórios de importação serão adicionados a essa regra e a todas as regras que dependem dela (observação: não as regras de que essa regra depende). Cada diretório será adicionado a  
          Caminhos absolutos (que começam com  | 
| srcs_version | String; o padrão é  srcsdo destino é compatível com Python 2, Python 3 ou ambos. Para definir a versão do ambiente de execução do Python, use o atributopython_versionde uma
          regra executável do Python (py_binaryoupy_test).Os valores permitidos são:  Somente as regras executáveis ( Para receber informações de diagnóstico sobre quais dependências introduzem requisitos de versão,
          execute o aspecto  
          bazel build <your target> \
              --aspects=@rules_python//python:defs.bzl%find_requirements \
              --output_groups=pyversioninfo
          -pyversioninfo.txt, que informa
          por que seu destino exige uma versão do Python ou outra. Ele funciona mesmo que
          o destino especificado não tenha sido criado devido a um conflito de versão. | 
py_test
Ver origem da regrapy_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, imports, legacy_create_init, licenses, local, main, python_version, restricted_to, shard_count, size, srcs_version, stamp, tags, target_compatible_with, testonly, timeout, toolchains, visibility)
Uma regra py_test() compila um teste.  Um teste é um wrapper binário
 em torno de algum código de teste.
Exemplos
py_test(
    name = "runtest_test",
    srcs = ["runtest_test.py"],
    deps = [
        "//path/to/a/py/library",
    ],
)
Também é possível especificar um módulo principal:
py_test(
    name = "runtest_test",
    srcs = [
        "runtest_main.py",
        "runtest_lib.py",
    ],
    main = "runtest_main.py",
)
Argumentos
| Atributos | |
|---|---|
| name | Nome: obrigatório Um nome exclusivo para essa segmentação. | 
| deps | Lista de rótulos. O padrão é  depsem
          
          Atributos típicos definidos pela maioria das regras de build.
          Geralmente, são regras depy_library. | 
| srcs | Lista de marcadores; obrigatórioA lista de arquivos de origem ( .py) processados para criar o destino.
          Isso inclui todo o código verificado e os arquivos de origem gerados. Os destinos de biblioteca
          pertencem adeps, enquanto outros arquivos binários necessários no tempo de execução pertencem adata. | 
| imports | Lista de strings. O padrão é  PYTHONPATH.
          Sujeito à substituição "Criar variável". Esses diretórios de importação serão adicionados a essa regra e a todas as regras que dependem dela (observação: não as regras de que essa regra depende). Cada diretório será adicionado a  
          Caminhos absolutos (que começam com  | 
| legacy_create_init | Número inteiro. O padrão é  --incompatible_default_to_explicit_init_pyseja usado. Se for "false", o usuário será
          responsável por criar arquivos __init__.py (possivelmente vazios) e adicioná-los aosrcsde destinos Python, conforme necessário. | 
| main | Rótulo; o padrão é  srcs. Se não for especificado,nameserá usado (veja acima). Senamenão corresponder a nenhum nome de arquivo emsrcs,mainprecisará ser especificado. | 
| python_version | String; não configurável; o padrão é  deps) para Python 2 ou Python
          3. Os valores válidos são"PY2"e"PY3"(o padrão).A versão do Python é sempre redefinida (possivelmente por padrão) para qualquer versão especificada por esse atributo, independente da versão especificada na linha de comando ou por outros destinos mais altos que dependem dela. Se você quiser  Aviso de bug:esse atributo define a versão para que o Bazel crie seu destino,
          mas, devido a #4815, o
          script stub resultante ainda pode invocar a versão errada do interpretador no tempo de execução. Consulte esta solução alternativa, que envolve definir uma meta  | 
| srcs_version | String; o padrão é  srcsdo destino é compatível com Python 2, Python 3 ou ambos. Para definir a versão do ambiente de execução do Python, use o atributopython_versionde uma
          regra executável do Python (py_binaryoupy_test).Os valores permitidos são:  Somente as regras executáveis ( Para receber informações de diagnóstico sobre quais dependências introduzem requisitos de versão,
          execute o aspecto  
          bazel build <your target> \
              --aspects=@rules_python//python:defs.bzl%find_requirements \
              --output_groups=pyversioninfo
          -pyversioninfo.txt, que informa
          por que seu destino exige uma versão do Python ou outra. Ele funciona mesmo que
          o destino especificado não tenha sido criado devido a um conflito de versão. | 
| stamp | Número inteiro. O padrão é  | 
py_runtime
Ver origem da regrapy_runtime(name, bootstrap_template, compatible_with, coverage_tool, deprecation, distribs, features, files, interpreter, interpreter_path, licenses, python_version, restricted_to, stub_shebang, tags, target_compatible_with, testonly, visibility)
Representa um ambiente de execução do Python usado para executar código Python.
Um destino py_runtime pode representar um ambiente de execução da plataforma ou um
ambiente de execução no build. Um ambiente de execução de plataforma acessa um interpretador instalado pelo sistema em um caminho conhecido, enquanto um ambiente de execução no build aponta para um destino executável que atua como o interpretador. Em
ambos os casos, um "interpretador" significa qualquer binário executável ou script wrapper capaz de
executar um script Python transmitido na linha de comando, seguindo as mesmas convenções do interpretador
CPython padrão.
Um ambiente de execução de plataforma é não hermético por natureza. Ele impõe à plataforma de destino o requisito de ter um interpretador localizado em um caminho específico. Um ambiente de execução integrado pode ou não ser hermético, dependendo se ele aponta para um intérprete verificado ou um script de wrapper que acessa o intérprete do sistema.
Exemplo:
py_runtime(
    name = "python-2.7.12",
    files = glob(["python-2.7.12/**"]),
    interpreter = "python-2.7.12/bin/python",
)
py_runtime(
    name = "python-3.6.0",
    interpreter_path = "/opt/pyenv/versions/3.6.0/bin/python",
)
Argumentos
| Atributos | |
|---|---|
| name | Nome: obrigatório Um nome exclusivo para essa segmentação. | 
| bootstrap_template | Rótulo; o padrão é  | 
| coverage_tool | Rótulo; o padrão é  py_binaryepy_test.Se definido, o destino precisa produzir um único arquivo ou ser um destino executável. O caminho para o arquivo único ou o executável, se o destino for executável, determina o ponto de entrada para a ferramenta de cobertura do Python. O destino e os arquivos de execução dele serão adicionados aos arquivos de execução quando a cobertura for ativada. O ponto de entrada da ferramenta precisa ser carregável por um interpretador Python (por exemplo, um arquivo
         | 
| files | Lista de rótulos. O padrão é  | 
| interpreter | Rótulo; o padrão é  | 
| interpreter_path | String; o padrão é  | 
| python_version | String; o padrão é  "PY2"e"PY3".O valor padrão é controlado pela flag  | 
| stub_shebang | String; o padrão é  py_binary.Consulte o problema 8685 para entender a motivação. Não se aplica ao Windows. |