módulo_ctx

Informar un problema Ver fuente Noche

El contexto de la extensión del módulo que contiene funciones auxiliares, así como información sobre las etiquetas pertinentes del gráfico de dependencia Cuando creas una extensión de módulo, obtienes un objeto module_ctx como argumento para la función implementation.

Miembros

download

unknown module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)

Descarga un archivo en la ruta de salida para la URL proporcionada y muestra una struct que contiene success, una marca que es true si la descarga se completó correctamente y, si se realizó correctamente, un hash del archivo con los campos sha256 y integrity.

Parámetros

Parámetro Descripción
url string o iterable de string; obligatorio
Lista de URLs duplicadas que hacen referencia al mismo archivo.
output string, Label o path; el valor predeterminado es la ruta de acceso ''
al archivo de salida, en relación con el directorio del repositorio.
sha256 string; el valor predeterminado es ''
el hash SHA-256 esperado del archivo descargado. Debe coincidir con el hash SHA-256 del archivo descargado. Omitir el SHA-256 representa un riesgo de seguridad, ya que pueden cambiar los archivos remotos. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional facilitar el desarrollo, pero se debe configurar antes del envío.
executable bool; el valor predeterminado es False
establece la marca ejecutable en el archivo creado; el valor predeterminado es falso.
allow_fail bool; el valor predeterminado es False
Si se configura, indica el error en el valor que se muestra en lugar de generar un error para las descargas con errores
canonical_id string; el valor predeterminado es ''
Si se configura, restringe los aciertos de caché a aquellos casos en los que el archivo se agregó a la caché con el mismo ID canónico
auth dict; el valor predeterminado es {}
Es un dict opcional que especifica la información de autenticación para algunas de las URLs.
headers dict; el valor predeterminado es {}
Es un dict opcional que especifica encabezados HTTP para todas las URL.
integrity string; el valor predeterminado es ''
La suma de comprobación esperada del archivo descargado, en formato de integridad de subrecursos. Debe coincidir con la suma de comprobación del archivo descargado. Omitir la suma de comprobación representa un riesgo de seguridad, ya que pueden cambiar los archivos remotos. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional facilitar el desarrollo, pero se debe configurar antes del envío.
block bool; el valor predeterminado es True
Si se establece como falso, la llamada muestra inmediatamente y, en lugar del valor normal, muestra un token con un solo método, wait(), que se bloquea hasta que finaliza la descarga y muestra el valor de retorno habitual o arroja como de costumbre.

download_and_extract

struct module_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})

Descarga un archivo en la ruta de salida para la URL proporcionada, lo extrae y muestra un struct que contiene success, una marca true si la descarga se completó correctamente y, si se realizó correctamente, un hash del archivo con los campos sha256 y integrity.

Parámetros

Parámetro Descripción
url string o iterable de string; obligatorio
Lista de URLs duplicadas que hacen referencia al mismo archivo.
output string, Label o path; el valor predeterminado es la ruta de acceso ''
al directorio donde se descomprimirá el archivo, en relación con el directorio del repositorio.
sha256 string; el valor predeterminado es ''
el hash SHA-256 esperado del archivo descargado. Debe coincidir con el hash SHA-256 del archivo descargado. Omitir el SHA-256 representa un riesgo de seguridad, ya que pueden cambiar los archivos remotos. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional facilitar el desarrollo, pero se debe configurar antes del envío. Si se proporciona, primero se verificará la caché del repositorio en busca de un archivo con el hash determinado. Solo se intentará realizar una descarga si el archivo no se encuentra en la caché. Si la descarga se realiza correctamente, el archivo se agregará a la caché.
type string; el valor predeterminado es ''
, que corresponde al tipo de archivo del archivo descargado. De forma predeterminada, el tipo de archivo se determina a partir de la extensión de archivo de la URL. Si el archivo no tiene extensión, puedes especificar explícitamente “zip”, “jar”, “war”, “aar”, “tar”, “tar.gz”, “tgz”, “tar.xz”, “txz”, “.tar.zst”, “.tzst”, “tar.bz2”, “.tbz”, “.ar” o “.deb” aquí.
stripPrefix string; el valor predeterminado es ''
, un prefijo de directorio para quitar los archivos extraídos. Muchos archivos contienen un directorio de nivel superior que contiene todos los archivos en el archivo. En lugar de necesitar especificar este prefijo una y otra vez en build_file, se puede usar este campo para quitarlo de los archivos extraídos.
allow_fail bool; el valor predeterminado es False
Si se configura, indica el error en el valor que se muestra en lugar de generar un error para las descargas con errores
canonical_id string; el valor predeterminado es ''
Si se configura, restringe los aciertos de caché a aquellos casos en los que el archivo se agregó a la caché con el mismo ID canónico
auth dict; el valor predeterminado es {}
Es un dict opcional que especifica la información de autenticación para algunas de las URLs.
headers dict; el valor predeterminado es {}
Es un dict opcional que especifica encabezados HTTP para todas las URL.
integrity string; el valor predeterminado es ''
La suma de comprobación esperada del archivo descargado, en formato de integridad de subrecursos. Debe coincidir con la suma de comprobación del archivo descargado. Omitir la suma de comprobación representa un riesgo de seguridad, ya que pueden cambiar los archivos remotos. En el mejor de los casos, omitir este campo hará que tu compilación no sea hermética. Es opcional facilitar el desarrollo, pero se debe configurar antes del envío.
rename_files dict; el valor predeterminado es {}
Un dict opcional que especifica los archivos a los que se les debe cambiar el nombre durante la extracción. Se cambiará el nombre de las entradas de archivo con nombres que coincidan exactamente con una clave por el valor, antes de cualquier ajuste del prefijo del directorio. Se puede usar para extraer archivos que contengan nombres que no sean Unicode o que tengan archivos que se extraerían en la misma ruta de acceso en sistemas de archivos que no distinguen mayúsculas de minúsculas.

execute

exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")

Ejecuta el comando proporcionado por la lista de argumentos. El tiempo de ejecución del comando está limitado por timeout (en segundos, el valor predeterminado es 600 segundos). Este método muestra una estructura exec_result que contiene el resultado del comando. El mapa environment se puede usar para anular algunas variables de entorno que se pasarán al proceso.

Parámetros

Parámetro Descripción
arguments secuencia; obligatorio
Es una lista de argumentos. El primer elemento debe ser la ruta de acceso al programa que se ejecutará.
timeout int; el valor predeterminado es de 600
la duración máxima del comando en segundos (el valor predeterminado es de 600 segundos).
environment dict; el valor predeterminado es {}
que obligan a que se establezcan algunas variables de entorno para que se pasen al proceso.
quiet bool; el valor predeterminado es True
Si stdout y stderr se deben imprimir en la terminal.
working_directory string; el valor predeterminado es ""
Directorio de trabajo para la ejecución del comando. Puede ser absoluta o relativa a la raíz del repositorio. La raíz del repositorio es la ubicación predeterminada.

extension_metadata

extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None, reproducible=False)

Construye un objeto opaco que se puede mostrar desde la función de implementación de la extensión del módulo para proporcionar metadatos sobre los repositorios generados por la extensión para Bazel.

Parámetros

Parámetro Descripción
root_module_direct_deps secuencia de string, string o None; el valor predeterminado es None
. Son los nombres de los repositorios que la extensión considera dependencias directas del módulo raíz. Si el módulo raíz importa repositorios adicionales o no importa todos estos a través de use_repo, Bazel imprimirá una advertencia cuando se evalúe la extensión y le indicará al usuario que ejecute bazel mod tidy para corregir automáticamente las llamadas a use_repo.

Si aparece en root_module_direct_deps, se mostrará una advertencia y un comando de corrección cuando se evalúe la extensión.

Si se especifica root_module_direct_deps o root_module_direct_dev_deps, el otro también debe especificarse. Las listas especificadas por estos dos parámetros deben ser inconexas.

Exactamente uno de los valores root_module_direct_deps y root_module_direct_dev_deps se puede establecer en el valor especial "all", que se trata como si se especificara como valor una lista con los nombres de todos los repositorios generados por la extensión.

root_module_direct_dev_deps secuencia de string, string o None; el valor predeterminado es None
. Son los nombres de los repositorios que la extensión considera dependencias directas del desarrollo del módulo raíz. Si el módulo raíz importa repositorios adicionales o no importa todos a través de use_repo en un proxy de extensión creado con use_extension(..., dev_dependency = True), Bazel imprimirá una advertencia cuando se evalúe la extensión y le indicará al usuario que ejecute bazel mod tidy para corregir automáticamente las llamadas a use_repo.

Si se especifica root_module_direct_deps o root_module_direct_dev_deps, el otro también debe especificarse. Las listas especificadas por estos dos parámetros deben ser inconexas.

Exactamente uno de los valores root_module_direct_deps y root_module_direct_dev_deps se puede establecer en el valor especial "all", que se trata como si se especificara como valor una lista con los nombres de todos los repositorios generados por la extensión.

reproducible bool; el valor predeterminado es False
Indica que esta extensión del módulo garantiza una reproducibilidad completa y, por lo tanto, no se debe almacenar en el archivo de bloqueo.

en el archivo.

None module_ctx.file(path, content='', executable=True, legacy_utf8=True)

Genera un archivo en el directorio del repositorio con el contenido proporcionado.

Parámetros

Parámetro Descripción
path string, Label, o path; es la ruta de acceso
requerida del archivo que se creará, en relación con el directorio del repositorio.
content string; el valor predeterminado es ''
el contenido del archivo a crear (vacío de forma predeterminada).
executable bool; el valor predeterminado es True
establece la marca ejecutable en el archivo creado (valor verdadero en la configuración predeterminada).
legacy_utf8 bool; el valor predeterminado es True
y codifica el contenido del archivo en UTF-8 (el valor predeterminado es verdadero). Las versiones futuras cambiarán el valor predeterminado y quitarán este parámetro.

getenv

string module_ctx.getenv(name, default=None)

Muestra el valor de una variable de entorno name como una cadena si existe o default si no existe.

Cuando compilas de forma incremental, cualquier cambio en el valor de la variable nombrada por name hará que se vuelva a recuperar este repositorio.

Parámetros

Parámetro Descripción
name string; obligatorio
nombre de la variable de entorno deseada
default string o None; el valor predeterminado es None
El valor predeterminado que se muestra si no se encuentra "name"
Es posible que se muestre None.

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

Muestra si se especificó la etiqueta determinada en el resultado de una llamada use_extension con devDependency = True.

Parámetros

Parámetro Descripción
tag bazel_module_tag; obligatorio
Una etiqueta obtenida de bazel_module.tags.

modules

list module_ctx.modules

Una lista de todos los módulos de Bazel en el gráfico de dependencias externas que usan esta extensión de módulo, cada uno de los cuales es un objeto bazel_module que expone todas las etiquetas que especificó para esta extensión. Se garantiza que el orden de iteración de este diccionario será el mismo que el de la búsqueda en amplitud a partir del módulo raíz.

os

repository_os module_ctx.os

Es un struct para acceder a la información del sistema.

ruta de acceso

path module_ctx.path(path)

Muestra una ruta de acceso de una cadena, etiqueta o ruta de acceso. Si la ruta es relativa, se resolverá en relación con el directorio del repositorio. Si la ruta es una etiqueta, se resolverá en la ruta del archivo correspondiente. Ten en cuenta que los repositorios remotos se ejecutan durante la fase de análisis y, por lo tanto, no pueden depender de un resultado objetivo (la etiqueta debe apuntar a un archivo no generado). Si la ruta es una ruta de acceso, la mostrará tal como está.

Parámetros

Parámetro Descripción
path string; Label; o path; obligatorio
string, etiqueta o ruta desde la que se crea una ruta

lectura

string module_ctx.read(path, *, watch='auto')

Lee el contenido de un archivo en el sistema de archivos.

Parámetros

Parámetro Descripción
path string; Label; o path; Es la ruta de acceso
requerida del archivo desde el que se leerá.
watch string; el valor predeterminado es 'auto'
para mirar el archivo. Puede ser "sí", "no" o "automático". Pasar "sí" equivale a invocar inmediatamente el método watch(); pasar "no" no intenta ver el archivo; pasar "auto" solo intentará ver el archivo cuando sea legal hacerlo (consulta la documentación de watch() para obtener más información).

report_progress

None module_ctx.report_progress(status='')

Actualiza el estado de progreso de la recuperación de la extensión de este repositorio o módulo.

Parámetros

Parámetro Descripción
status string; el valor predeterminado es una cadena ''
que describe el estado actual del progreso de la recuperación

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

Indica si el módulo raíz usa esta extensión como una dependencia no dev.

reloj

None module_ctx.watch(path)

Le indica a Bazel que busque cambios en la ruta de acceso determinada, independientemente de si se trata de un archivo o de un directorio. Cualquier cambio en el archivo o directorio invalidará la extensión de este repositorio o módulo, y hará que se recupere o se vuelva a evaluar la próxima vez.

Los “cambios” incluyen cambios en el contenido del archivo (si la ruta de acceso es un archivo); si la ruta de acceso era un archivo, pero ahora es un directorio, o viceversa; y si la ruta de acceso comienza a existir o deja de existir. En particular, esto no incluye cambios en los archivos del directorio si la ruta es un directorio. Para hacerlo, usa path.readdir().

Ten en cuenta que, si intentas observar las rutas de acceso dentro del repositorio que se está recuperando actualmente o dentro del directorio de trabajo de la extensión del módulo actual, se producirá un error. Una extensión de módulo que intente observar una ruta fuera del espacio de trabajo actual de Bazel también generará un error.

Parámetros

Parámetro Descripción
path string, Label o path; es la ruta de acceso
requerida del archivo que se observará.

cuál

path module_ctx.which(program)

Muestra la ruta de acceso del programa correspondiente o None si no existe tal programa en la ruta.

Parámetros

Parámetro Descripción
program string; obligatorio
Programa para encontrar en la ruta.
Es posible que se muestre None.