Denuncia un problemaopen_in_new
Ver fuenteopen_in_new
Nightly
·
7.4
.
7.3
·
7.2
·
7.1
·
7.0
·
6.5
Reglas
py_binary
Ver la fuente de la reglaopen_in_new
py_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, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyc_collection, python_version, restricted_to, srcs_version, stamp, tags, target_compatible_with, testonly, toolchains, visibility)
Argumentos
Atributos |
name |
Nombre: Obligatorio
Un nombre único para este objetivo.
|
deps
|
Es una lista de etiquetas. El valor predeterminado es [] .
Es la lista de bibliotecas adicionales que se vincularán al destino.
Consulta los comentarios sobre el atributo [`deps`, que suele definirse con reglas](https://bazel.build/reference/be/common-definitions#typical-attributes).
Por lo general, son reglas de "py_library".
Los destinos que solo proporcionan archivos de datos que se usan en el tiempo de ejecución pertenecen al atributo "data".
|
srcs
|
Es una lista de etiquetas obligatoria.
Es la lista de archivos fuente de Python que se procesan para crear el destino. Esto incluye todo el código que se revisó y puede incluir archivos fuente generados. Los archivos.py pertenecen a "srcs" y los destinos de bibliotecas pertenecen a "deps". Otros archivos binarios que pueden ser necesarios en el tiempo de ejecución pertenecen a "data".
|
data
|
Es una lista de etiquetas. El valor predeterminado es [] .
Es la lista de archivos que necesita esta biblioteca durante el tiempo de ejecución. Consulta los comentarios sobre el [`atributo "data" que suele definirse con reglas"](https://bazel.build/reference/be/common-definitions#typical-attributes).
No hay "py_embed_data" como "cc_embed_data" y "go_embed_data". Esto se debe a que Python tiene un concepto de recursos de tiempo de ejecución.
|
imports
|
Es una lista de cadenas. El valor predeterminado es [] .
Es la lista de directorios de importación que se agregarán a PYTHONPATH.
Está sujeto a la sustitución "Make variable". Estos directorios de importación se agregarán
para esta regla y todas las reglas que dependen de ella (nota: no las reglas de las que depende esta
regla). Cada directorio se agregará a "PYTHONPATH" mediante las reglas "py_binary" que dependen de esta regla. Las cadenas son relativas a repo-runfiles-root.
No se permiten las rutas de acceso absolutas (rutas que comienzan con "/") ni las rutas de acceso que hacen referencia a una ruta de acceso
arriba de la raíz de ejecución, ya que se producirá un error.
|
legacy_create_init
|
Número entero (el valor predeterminado es -1 )
Indica si se deben crear implícitamente archivos "__init__.py" vacíos en el árbol de runfiles.
Se crean en todos los directorios que contienen código fuente de Python o bibliotecas compartidas, y en todos los directorios superiores de esos directorios, excepto el directorio raíz del repositorio. El valor predeterminado, "-1" (automático), significa verdadero, a menos que se use `--incompatible_default_to_explicit_init_py". Si es falso, el usuario es responsable de crear archivos "__init__.py" (posiblemente vacíos) y agregarlos a "srcs" de los destinos de Python según sea necesario.
|
main
|
Etiqueta (Label); el valor predeterminado es None
Opcional: Es el nombre del archivo fuente que es el punto de entrada principal de la aplicación. Este archivo también debe aparecer en "srcs". Si no se especifica, se usa "name" con ".py" agregado. Si "name" no coincide con ningún nombre de archivo en "srcs", se debe especificar "main".
|
precompile
|
Cadena; el valor predeterminado es "inherit"
Indica si los archivos de origen de py **para este destino** deben precompilarse.
Valores:
* "inherit": Determina el valor de la marca {flag}`--precompile`.
* "enabled": Compila los archivos fuente de Python en el tiempo de compilación. Ten en cuenta que
--precompile_add_to_runfiles afecta la forma en que los archivos compilados se incluyen en
un binario downstream.
* "disabled": No compila los archivos fuente de Python en el tiempo de compilación.
* "if_generated_source": Compila archivos fuente de Python, pero solo si son archivos generados.
:::{seealso}
* La marca {flag}`--precompile`, que puede anular este atributo en algunos casos
y afectará a todos los destinos durante la compilación.
* El atributo {obj}`pyc_collection` para habilitar de forma transitiva la compilación previa por objetivo
* La documentación [Precompilación](precompiling) para obtener una guía sobre el uso de la compilación previa.
:::
|
precompile_invalidation_mode
|
Cadena; el valor predeterminado es "auto"
Cómo se deben verificar los archivos precompilados para que estén actualizados con sus archivos de origen asociados Los valores posibles son los siguientes:
* "auto": El valor efectivo se determinará automáticamente mediante otros parámetros de configuración de la compilación.
* "checked_hash": Usa el archivo pyc si el hash del archivo de origen coincide con el hash registrado en el archivo pyc. Esto es más útil cuando se trabaja con código que
puedes modificar.
* "unchecked_hash": Usa siempre el archivo pyc. No compares el hash de pyc con el archivo fuente. Esto es más útil cuando no se modificará el código.
Para obtener más información sobre los modos de invalidación de pyc, consulta https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.
|
precompile_optimize_level
|
Número entero (el valor predeterminado es 0 )
Es el nivel de optimización para los archivos precompilados.
Para obtener más información sobre los niveles de optimización, consulta la documentación del argumento "optimize" de la función "compile" en https://docs.python.org/3/library/functions.html#compile.
NOTA: El valor "-1" significa "intérprete actual", que será el intérprete que se use _en el tiempo de compilación cuando se generen los pycs_, no el intérprete que se use en el tiempo de ejecución cuando se ejecute el código.
|
precompile_source_retention
|
Cadena; el valor predeterminado es "inherit"
Determina, cuando se compila un archivo de origen, si este se mantiene en el resultado final o no. Los valores válidos son los siguientes:
* "inherit": Hereda el valor de la marca {flag}`--precompile_source_retention`.
* "keep_source": Incluye la fuente original de Python.
* "omit_source": No incluye la fuente de py original.
* "omit_if_generated_source": Conserva la fuente original si es un archivo de origen normal, pero omítela si es un archivo generado.
|
pyc_collection
|
Cadena; el valor predeterminado es "inherit"
Determina si se deben incluir manualmente los archivos pyc de las dependencias.
NOTA: Este parámetro de configuración solo es útil con {flag}`--precompile_add_to_runfiles=decided_elsewhere`.
Los valores válidos son los siguientes:
* "inherit": Hereda el valor de {flag}`--pyc_collection`.
* "include_pyc": Agrega archivos pyc de dependencias en el objeto binario (de
{obj}"PyInfo.transitive_pyc_files").
* "disabled": No agregues archivos pyc de dependencias de forma explícita. Ten en cuenta que los archivos pyc pueden provenir de dependencias si un destino los incluye como parte de sus archivos de ejecución (como cuando se usa {obj}`--precompile_add_to_runfiles=always`).
|
python_version
|
Cadena; el valor predeterminado es "PY3"
No se usa y no hace nada.
|
srcs_version
|
Cadena; el valor predeterminado es "PY2AND3"
No se usa y no hace nada.
|
stamp
|
Número entero (el valor predeterminado es -1 )
Indica si se debe codificar la información de compilación en el objeto binario. Valores posibles:
* "stamp = 1": Siempre marca la información de compilación en el binario, incluso en las compilaciones de `--nostamp`. **Se debe evitar este parámetro de configuración**, ya que puede finalizar
la caché remota para el binario y cualquier acción descendente que dependa de ella.
* "stamp = 0": Siempre reemplaza la información de compilación por valores constantes. Esto proporciona una buena almacenamiento en caché de resultados de compilación.
* "stamp = -1": La incorporación de información de compilación está controlada por la marca `--[no]stamp`.
Los objetos binarios estampados no se vuelven a compilar, a menos que cambien sus dependencias.
ADVERTENCIA: El sellado puede perjudicar el rendimiento de la compilación, ya que reduce los hits de caché, y se debe evitar si es posible.
|
py_library
Ver la fuente de la reglaopen_in_new
py_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, imports, licenses, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, restricted_to, srcs_version, tags, target_compatible_with, testonly, toolchains, visibility)
Es una biblioteca de código de Python en la que se puede confiar.
Resultados predeterminados:
* Las fuentes de Python de entrada
* Los artefactos precompilados de las fuentes
NOTA: La compilación previa afecta a cuáles de los resultados predeterminados se incluyen en los archivos de ejecución resultantes. Consulta los atributos y las marcas relacionados con la compilación previa para obtener más información.
Argumentos
Atributos |
name |
Nombre: Obligatorio
Un nombre único para este objetivo.
|
deps
|
Es una lista de etiquetas. El valor predeterminado es [] .
Es la lista de bibliotecas adicionales que se vincularán al destino.
Consulta los comentarios sobre el atributo [`deps`, que suele definirse con reglas](https://bazel.build/reference/be/common-definitions#typical-attributes).
Por lo general, son reglas de "py_library".
Los destinos que solo proporcionan archivos de datos que se usan en el tiempo de ejecución pertenecen al atributo "data".
|
srcs
|
Es una lista de etiquetas. El valor predeterminado es [] .
Es la lista de archivos fuente de Python que se procesan para crear el destino. Esto incluye todo el código que se revisó y puede incluir archivos fuente generados. Los archivos.py pertenecen a "srcs" y los destinos de bibliotecas pertenecen a "deps". Otros archivos binarios que pueden ser necesarios en el tiempo de ejecución pertenecen a "data".
|
data
|
Es una lista de etiquetas. El valor predeterminado es [] .
Es la lista de archivos que necesita esta biblioteca durante el tiempo de ejecución. Consulta los comentarios sobre el [`atributo "data" que suele definirse con reglas"](https://bazel.build/reference/be/common-definitions#typical-attributes).
No hay "py_embed_data" como "cc_embed_data" y "go_embed_data". Esto se debe a que Python tiene un concepto de recursos de tiempo de ejecución.
|
imports
|
Es una lista de cadenas. El valor predeterminado es [] .
Es la lista de directorios de importación que se agregarán a PYTHONPATH.
Está sujeto a la sustitución "Make variable". Estos directorios de importación se agregarán
para esta regla y todas las reglas que dependen de ella (nota: no las reglas de las que depende esta
regla). Cada directorio se agregará a "PYTHONPATH" mediante las reglas "py_binary" que dependen de esta regla. Las cadenas son relativas a repo-runfiles-root.
No se permiten las rutas de acceso absolutas (rutas que comienzan con "/") ni las rutas de acceso que hacen referencia a una ruta de acceso
arriba de la raíz de ejecución, ya que se producirá un error.
|
precompile
|
Cadena; el valor predeterminado es "inherit"
Indica si los archivos de origen de py **para este destino** deben precompilarse.
Valores:
* "inherit": Determina el valor de la marca {flag}`--precompile`.
* "enabled": Compila los archivos fuente de Python en el tiempo de compilación. Ten en cuenta que
--precompile_add_to_runfiles afecta la forma en que los archivos compilados se incluyen en
un binario downstream.
* "disabled": No compila los archivos fuente de Python en el tiempo de compilación.
* "if_generated_source": Compila archivos fuente de Python, pero solo si son archivos generados.
:::{seealso}
* La marca {flag}`--precompile`, que puede anular este atributo en algunos casos
y afectará a todos los destinos durante la compilación.
* El atributo {obj}`pyc_collection` para habilitar de forma transitiva la compilación previa por objetivo
* La documentación [Precompilación](precompiling) para obtener una guía sobre el uso de la compilación previa.
:::
|
precompile_invalidation_mode
|
Cadena; el valor predeterminado es "auto"
Cómo se deben verificar los archivos precompilados para que estén actualizados con sus archivos de origen asociados Los valores posibles son los siguientes:
* "auto": El valor efectivo se determinará automáticamente mediante otros parámetros de configuración de la compilación.
* "checked_hash": Usa el archivo pyc si el hash del archivo de origen coincide con el hash registrado en el archivo pyc. Esto es más útil cuando se trabaja con código que
puedes modificar.
* "unchecked_hash": Usa siempre el archivo pyc. No compares el hash de pyc con el archivo fuente. Esto es más útil cuando no se modificará el código.
Para obtener más información sobre los modos de invalidación de pyc, consulta https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.
|
precompile_optimize_level
|
Número entero (el valor predeterminado es 0 )
Es el nivel de optimización para los archivos precompilados.
Para obtener más información sobre los niveles de optimización, consulta la documentación del argumento "optimize" de la función "compile" en https://docs.python.org/3/library/functions.html#compile.
NOTA: El valor "-1" significa "intérprete actual", que será el intérprete que se use _en el tiempo de compilación cuando se generen los pycs_, no el intérprete que se use en el tiempo de ejecución cuando se ejecute el código.
|
precompile_source_retention
|
Cadena; el valor predeterminado es "inherit"
Determina, cuando se compila un archivo de origen, si este se mantiene en el resultado final o no. Los valores válidos son los siguientes:
* "inherit": Hereda el valor de la marca {flag}`--precompile_source_retention`.
* "keep_source": Incluye la fuente original de Python.
* "omit_source": No incluye la fuente de py original.
* "omit_if_generated_source": Conserva la fuente original si es un archivo de origen normal, pero omítela si es un archivo generado.
|
srcs_version
|
Cadena; el valor predeterminado es "PY2AND3"
No se usa y no hace nada.
|
py_test
Ver la fuente de la reglaopen_in_new
py_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, precompile, precompile_invalidation_mode, precompile_optimize_level, precompile_source_retention, pyc_collection, python_version, restricted_to, shard_count, size, srcs_version, stamp, tags, target_compatible_with, testonly, timeout, toolchains, visibility)
Argumentos
Atributos |
name |
Nombre: Obligatorio
Un nombre único para este objetivo.
|
deps
|
Es una lista de etiquetas. El valor predeterminado es [] .
Es la lista de bibliotecas adicionales que se vincularán al destino.
Consulta los comentarios sobre el atributo [`deps`, que suele definirse con reglas](https://bazel.build/reference/be/common-definitions#typical-attributes).
Por lo general, son reglas de "py_library".
Los destinos que solo proporcionan archivos de datos que se usan en el tiempo de ejecución pertenecen al atributo "data".
|
srcs
|
Es una lista de etiquetas obligatoria.
Es la lista de archivos fuente de Python que se procesan para crear el destino. Esto incluye todo el código que se revisó y puede incluir archivos fuente generados. Los archivos.py pertenecen a "srcs" y los destinos de bibliotecas pertenecen a "deps". Otros archivos binarios que pueden ser necesarios en el tiempo de ejecución pertenecen a "data".
|
data
|
Es una lista de etiquetas. El valor predeterminado es [] .
Es la lista de archivos que necesita esta biblioteca durante el tiempo de ejecución. Consulta los comentarios sobre el [`atributo "data" que suele definirse con reglas"](https://bazel.build/reference/be/common-definitions#typical-attributes).
No hay "py_embed_data" como "cc_embed_data" y "go_embed_data". Esto se debe a que Python tiene un concepto de recursos de tiempo de ejecución.
|
imports
|
Es una lista de cadenas. El valor predeterminado es [] .
Es la lista de directorios de importación que se agregarán a PYTHONPATH.
Está sujeto a la sustitución "Make variable". Estos directorios de importación se agregarán
para esta regla y todas las reglas que dependen de ella (nota: no las reglas de las que depende esta
regla). Cada directorio se agregará a "PYTHONPATH" mediante las reglas "py_binary" que dependen de esta regla. Las cadenas son relativas a repo-runfiles-root.
No se permiten las rutas de acceso absolutas (rutas que comienzan con "/") ni las rutas de acceso que hacen referencia a una ruta de acceso
arriba de la raíz de ejecución, ya que se producirá un error.
|
legacy_create_init
|
Número entero (el valor predeterminado es -1 )
Indica si se deben crear implícitamente archivos "__init__.py" vacíos en el árbol de runfiles.
Se crean en todos los directorios que contienen código fuente de Python o bibliotecas compartidas, y en todos los directorios superiores de esos directorios, excepto el directorio raíz del repositorio. El valor predeterminado, "-1" (automático), significa verdadero, a menos que se use `--incompatible_default_to_explicit_init_py". Si es falso, el usuario es responsable de crear archivos "__init__.py" (posiblemente vacíos) y agregarlos a "srcs" de los destinos de Python según sea necesario.
|
main
|
Etiqueta (Label); el valor predeterminado es None
Opcional: Es el nombre del archivo fuente que es el punto de entrada principal de la aplicación. Este archivo también debe aparecer en "srcs". Si no se especifica, se usa "name" con ".py" agregado. Si "name" no coincide con ningún nombre de archivo en "srcs", se debe especificar "main".
|
precompile
|
Cadena; el valor predeterminado es "inherit"
Indica si los archivos de origen de py **para este destino** deben precompilarse.
Valores:
* "inherit": Determina el valor de la marca {flag}`--precompile`.
* "enabled": Compila los archivos fuente de Python en el tiempo de compilación. Ten en cuenta que
--precompile_add_to_runfiles afecta la forma en que los archivos compilados se incluyen en
un binario downstream.
* "disabled": No compila los archivos fuente de Python en el tiempo de compilación.
* "if_generated_source": Compila archivos fuente de Python, pero solo si son archivos generados.
:::{seealso}
* La marca {flag}`--precompile`, que puede anular este atributo en algunos casos
y afectará a todos los destinos durante la compilación.
* El atributo {obj}`pyc_collection` para habilitar de forma transitiva la compilación previa por objetivo
* La documentación [Precompilación](precompiling) para obtener una guía sobre el uso de la compilación previa.
:::
|
precompile_invalidation_mode
|
Cadena; el valor predeterminado es "auto"
Cómo se deben verificar los archivos precompilados para que estén actualizados con sus archivos de origen asociados Los valores posibles son los siguientes:
* "auto": El valor efectivo se determinará automáticamente mediante otros parámetros de configuración de la compilación.
* "checked_hash": Usa el archivo pyc si el hash del archivo de origen coincide con el hash registrado en el archivo pyc. Esto es más útil cuando se trabaja con código que
puedes modificar.
* "unchecked_hash": Usa siempre el archivo pyc. No compares el hash de pyc con el archivo fuente. Esto es más útil cuando no se modificará el código.
Para obtener más información sobre los modos de invalidación de pyc, consulta https://docs.python.org/3/library/py_compile.html#py_compile.PycInvalidationMode.
|
precompile_optimize_level
|
Número entero (el valor predeterminado es 0 )
Es el nivel de optimización para los archivos precompilados.
Para obtener más información sobre los niveles de optimización, consulta la documentación del argumento "optimize" de la función "compile" en https://docs.python.org/3/library/functions.html#compile.
NOTA: El valor "-1" significa "intérprete actual", que será el intérprete que se use _en el tiempo de compilación cuando se generen los pycs_, no el intérprete que se use en el tiempo de ejecución cuando se ejecute el código.
|
precompile_source_retention
|
Cadena; el valor predeterminado es "inherit"
Determina, cuando se compila un archivo de origen, si este se mantiene en el resultado final o no. Los valores válidos son los siguientes:
* "inherit": Hereda el valor de la marca {flag}`--precompile_source_retention`.
* "keep_source": Incluye la fuente original de Python.
* "omit_source": No incluye la fuente de py original.
* "omit_if_generated_source": Conserva la fuente original si es un archivo de origen normal, pero omítela si es un archivo generado.
|
pyc_collection
|
Cadena; el valor predeterminado es "inherit"
Determina si se deben incluir manualmente los archivos pyc de las dependencias.
NOTA: Este parámetro de configuración solo es útil con {flag}`--precompile_add_to_runfiles=decided_elsewhere`.
Los valores válidos son los siguientes:
* "inherit": Hereda el valor de {flag}`--pyc_collection`.
* "include_pyc": Agrega archivos pyc de dependencias en el objeto binario (de
{obj}"PyInfo.transitive_pyc_files").
* "disabled": No agregues archivos pyc de dependencias de forma explícita. Ten en cuenta que los archivos pyc pueden provenir de dependencias si un destino los incluye como parte de sus archivos de ejecución (como cuando se usa {obj}`--precompile_add_to_runfiles=always`).
|
python_version
|
Cadena; el valor predeterminado es "PY3"
No se usa y no hace nada.
|
srcs_version
|
Cadena; el valor predeterminado es "PY2AND3"
No se usa y no hace nada.
|
stamp
|
Número entero (el valor predeterminado es 0 )
Indica si se debe codificar la información de compilación en el objeto binario. Valores posibles:
* "stamp = 1": Siempre marca la información de compilación en el binario, incluso en las compilaciones de `--nostamp`. **Se debe evitar este parámetro de configuración**, ya que puede finalizar
la caché remota para el binario y cualquier acción descendente que dependa de ella.
* "stamp = 0": Siempre reemplaza la información de compilación por valores constantes. Esto proporciona una buena almacenamiento en caché de resultados de compilación.
* "stamp = -1": La incorporación de información de compilación está controlada por la marca `--[no]stamp`.
Los objetos binarios estampados no se vuelven a compilar, a menos que cambien sus dependencias.
ADVERTENCIA: El sellado puede perjudicar el rendimiento de la compilación, ya que reduce los hits de caché, y se debe evitar si es posible.
|
py_runtime
Ver fuente de reglasopen_in_new
py_runtime(name, bootstrap_template, compatible_with, coverage_tool, deprecation, distribs, exec_compatible_with, exec_properties, features, files, implementation_name, interpreter, interpreter_path, interpreter_version_info, pyc_tag, python_version, restricted_to, stage2_bootstrap_template, stub_shebang, tags, target_compatible_with, testonly, toolchains, visibility, zip_main_template)
Representa un entorno de ejecución de Python que se usa para ejecutar código de Python.
Un objetivo "py_runtime" puede representar un *entorno de ejecución de la plataforma* o un *entorno de ejecución integrado*. Un entorno de ejecución de plataforma accede a un intérprete instalado por el sistema en una ruta conocida, mientras que un entorno de ejecución integrado apunta a un destino ejecutable que actúa como intérprete. En ambos casos, un "intérprete" se refiere a cualquier secuencia de comandos binaria o wrapper ejecutable que sea capaz de ejecutar una secuencia de comandos de Python pasada en la línea de comandos, siguiendo las mismas convenciones que el intérprete estándar de CPython.
Por su naturaleza, un entorno de ejecución de plataforma no es hermético. Impone un requisito a la plataforma de destino para que tenga un intérprete ubicado en una ruta específica. Un tiempo de ejecución integrado puede ser hermético o no, según si apunta a un intérprete registrado o a una secuencia de comandos de wrapper que accede al intérprete del sistema.
Ejemplo
```
load("@rules_python//python:py_runtime.bzl", "py_runtime")
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 |
Nombre: Obligatorio
Un nombre único para este objetivo.
|
bootstrap_template
|
Etiqueta (Label); el valor predeterminado es "@rules_python//python/private:bootstrap_template"
Es el archivo de plantilla de secuencia de comandos de arranque que se usará. Debe tener %python_binary%,
%workspace_name%, %main% y %imports%.
Esta plantilla, después de la expansión, se convierte en el archivo ejecutable que se usa para iniciar el proceso, por lo que es responsable de las acciones de arranque iniciales, como encontrar el intérprete de Python, los archivos de ejecución y la construcción de un entorno para ejecutar la aplicación de Python prevista.
Si bien este atributo es opcional en la actualidad, se volverá obligatorio cuando las reglas de Python se quiten de Bazel.
Los nombres de las variables exactas expandidas son una API inestable y están sujetos a cambios.
La API será más estable cuando se quiten las reglas de Python de Bazel.
Consulta @bazel_tools//tools/python:python_bootstrap_template.txt para obtener más variables.
|
coverage_tool
|
Etiqueta (Label); el valor predeterminado es None
Este es un destino que se debe usar para recopilar información de cobertura de código de los destinos {rule}`py_binary` y {rule}`py_test`.
Si se establece, el destino debe producir un solo archivo o ser un destino ejecutable.
La ruta de acceso al archivo único, o el ejecutable si el objetivo es ejecutable, determina el punto de entrada de la herramienta de cobertura de Python. El objetivo y sus archivos de ejecución se agregarán a los archivos de ejecución cuando se habilite la cobertura.
Un intérprete de Python debe poder cargar el punto de entrada de la herramienta (p.ej., un archivo.py o.pyc). Debe aceptar los argumentos de línea de comandos de [`coverage.py`](https://coverage.readthedocs.io), al menos, los subcomandos "run" y "lcov".
|
files
|
Es una lista de etiquetas. El valor predeterminado es [] .
En el caso de un entorno de ejecución integrado, este es el conjunto de archivos que lo componen.
Estos archivos se agregarán a los archivos de ejecución de los objetos binarios de Python que usen este tiempo de ejecución. Para un entorno de ejecución de plataforma, no se debe establecer este atributo.
|
implementation_name
|
Cadena; el valor predeterminado es ""
El nombre de la implementación de Python ("sys.implementation.name")
|
interpreter
|
Etiqueta (Label); el valor predeterminado es None
Para un entorno de ejecución integrado en la compilación, este es el objetivo que se debe invocar como intérprete. Puede ser una de las siguientes opciones:
* Un solo archivo, que será el intérprete binario. Se supone que esos intérpretes son ejecutables de un solo archivo independientes o que cualquier archivo de compatibilidad se especifica en "files".
* Un destino ejecutable. El ejecutable del destino será el objeto binario del intérprete.
Cualquier otro resultado predeterminado ("target.files") y runfiles de archivos simples ("runfiles.files") se incluirán automáticamente como si se especificaran en el atributo "files".
NOTA: Es posible que los archivos de ejecución del destino aún no se respeten o propaguen correctamente
a los consumidores de la cadena de herramientas o el intérprete.Consulta
bazelbuild/rules_python/issues/1612. Para un entorno de ejecución de plataforma (es decir, si se establece "interpreter_path"), este atributo no debe establecerse.
|
interpreter_path
|
Cadena; el valor predeterminado es ""
Para un entorno de ejecución de plataforma, esta es la ruta de acceso absoluta de un intérprete de Python en la plataforma de destino. Para un entorno de ejecución integrado, no se debe configurar este atributo.
|
interpreter_version_info
|
Diccionario: Cadena -> Cadena; el valor predeterminado es {}
Es la información de versión sobre el intérprete que proporciona este entorno de ejecución.
Si no se especifica, usa {obj}`--python_version`.
Las claves admitidas coinciden con los nombres de "sys.version_info". Si bien los valores de entrada son cadenas, la mayoría se convierten en números enteros. Las claves admitidas son las siguientes:
* major: int, el número de versión principal
* minor: int, el número de versión secundaria
* micro: int opcional, el número de versión micro
* releaselevel: str opcional, el nivel de lanzamiento
* serial: int opcional, el número de serie de la versión
:::{versionchanged} 0.36.0
{obj}`--python_version` determina el valor predeterminado.
:::
|
pyc_tag
|
Cadena; el valor predeterminado es ""
Es una cadena opcional, la parte de la etiqueta de un nombre de archivo pyc, p.ej., el infijo "cpython-39" de "foo.cpython-39.pyc". Consulta PEP 3147. Si no se especifica, se calculará a partir de "implementation_name" y "interpreter_version_info". Si no hay una etiqueta pyc disponible, solo funcionará correctamente la generación de pyc sin código fuente.
|
python_version
|
Cadena; el valor predeterminado es "PY3"
Indica si este entorno de ejecución es para la versión principal 2 o 3 de Python. Los valores válidos son"PY2" y"PY3". El valor predeterminado se controla con la marca `--incompatible_py3_is_default`.
Sin embargo, en el futuro, este atributo será obligatorio y no tendrá un valor predeterminado.
|
stage2_bootstrap_template
|
Etiqueta (Label); el valor predeterminado es "@rules_python//python/private:stage2_bootstrap_template"
Es la plantilla que se debe usar cuando se habilita el inicio por dos etapas.
:::{seealso}
{obj}`PyRuntimeInfo.stage2_bootstrap_template` y {obj}`--bootstrap_impl`
:::
|
stub_shebang
|
Cadena; el valor predeterminado es "#!/usr/bin/env python3"
Expresión "shebang" que se agrega al principio de la secuencia de comandos de stub de Python de inicio que se usa cuando se ejecutan destinos {rule}`py_binary`.
Consulta https://github.com/bazelbuild/bazel/issues/8685 para obtener
motivación.
No se aplica a Windows.
|
zip_main_template
|
Etiqueta (Label); el valor predeterminado es "@rules_python//python/private:zip_main_template"
Es la plantilla que se usará para el archivo "__main__.py" de nivel superior de un archivo ZIP.
Este se convierte en el punto de entrada que se ejecuta cuando se ejecuta "python foo.zip".
:::{seealso}
El campo {obj}`PyRuntimeInfo.zip_main_template`.
:::
|